ASP.NET MVC处理控制器中动态参数数量的最佳方法

卡卡布拉姆斯

我有一个考试模型。每次考试都有任意数量的问题。可能是1个问题,也可能是50个问题。提交后,我需要遍历问题并检查答案。我有一个解决方案,但我觉得这不是最佳实践。

int questionNumber = 1;

        while (Request.Form["Question" + questionNumber.ToString()] != null)
        {
            int questionID = Convert.ToInt32(Request.Form["Question" + questionNumber.ToString()]);
            int answerID = Convert.ToInt32(Request.Form["Answer" + questionNumber.ToString()]);

            //TODO: Check if answer is correct
        }

不确定这样做的另一种方式

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult GradeTest(int? testID, string[] questionIDs, string[] answerIDs)

我正在做的事情感觉有些古怪。请帮忙,或者让我知道我在正确的轨道上。谢谢!

大卫·鲁特奎斯特(David Rutqvist)

我确实没有得到整个上下文,但是如果是从表单的视图中提交的,则表单可能是使用@ Html.TextBoxFor或类似的东西构建的。只需将相同的模型用作Post Action的输入即可。请注意,将不包括任何不在表单字段中的属性,如果必须要使用某些属性,请使用HiddenFor。我在下面整理了一个例子。

YourViewModel.cs

public class YourViewModel {
    public int ExamID { get; set; }
    public string Name { get; set; }
    public List<int> QuestionIDs { get; set; }
    public List<int> AnswerIDs { get; set; }
}

YourView.cshtml

@model YourViewModel.cs
using(Html.BeginForm("PostExam", "YourController", FormMethod.Post)        
{
    @Html.HiddenFor(m => m.ExamID)
    @Html.AntiForgeryToken()
    <strong>Please enter your name</strong>
    @Html.TextBoxFor(m => m.Name)
    @*Your question and answers goes here*@
    <input type="submit" value="Hand in" />
}

YourController.cs

public class YourController : Controller
{
    [HttpPost]
    [ValidateAntiForgeryToken()]
    public ActionResult PostExam(YourViewModel Submitted)
    {
        //Handle submitted data here
        foreach(var QuestionID in Submitted.QuestionIDs)
        {
            //Do something
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

处理ASP.NET MVC控制器中的异常

来自分类Dev

ASP.NET MVC控制器方法中HTTpPost方法的多个参数类型

来自分类Dev

从Asp.net-mvc控制器操作返回File或ErrorMessage的最佳方法是什么?

来自分类Dev

将Asp.Net MVC控制器转换为Web API的最佳方法

来自分类Dev

将Asp.Net MVC控制器转换为Web API的最佳方法

来自分类Dev

如何处理在 ASP.NET MVC 中返回文件的控制器结果

来自分类Dev

如何使ASP.NET MVC控制器方法异步

来自分类Dev

ASP.NET MVC 调用控制器方法 DevExpress

来自分类Dev

控制器ASP.NET MVC中的存储库参数

来自分类Dev

在ASP.NET MVC中获取控制器名称

来自分类Dev

从ASP.NET MVC控制器中删除功能

来自分类Dev

ASP.NET MVC控制器语法中的Linq

来自分类Dev

在 asp .net mvc 中创建 Api 控制器

来自分类Dev

ASP.NET MVC 在控制器中实现分析

来自分类Dev

ASP.NET MVC 控制器中的持久数据

来自分类Dev

如何在ASP.NET MVC中的控制器中调用模型方法

来自分类Dev

如何在ASP.NET Core Web API中使用相同数量的参数重载控制器方法?

来自分类Dev

在 ASP.NET 控制器方法中返回 JSON

来自分类Dev

如何查看ASP.Net MVC中调用的每个控制器和操作方法?

来自分类Dev

一个控制器中的ASP.NET Core MVC 1.0多发布方法

来自分类Dev

摆脱仅在ASP.NET MVC中返回视图的控制器GET操作的方法

来自分类Dev

ASP.NET MVC RemoteAttribute不会在控制器中触发操作方法

来自分类Dev

如何在使用ASP .NET MVC的方法之间正确共享控制器中的对象?

来自分类Dev

如何查看ASP.Net MVC中调用的每个控制器和操作方法?

来自分类Dev

检查从控制器中的哪个视图方法调用了ASP.NET MVC

来自分类Dev

如何使ASP.NET MVC控制器的GET方法仅从链接中调用?

来自分类Dev

如何在ASP.NET MVC的控制器方法中“不要重复自己”?

来自分类Dev

如何在ASP.NET MVC中的控制器中使用自定义方法

来自分类Dev

ASP.NET MVC 5:在文件浏览器模式下处理路径的单控制器方法

Related 相关文章

  1. 1

    处理ASP.NET MVC控制器中的异常

  2. 2

    ASP.NET MVC控制器方法中HTTpPost方法的多个参数类型

  3. 3

    从Asp.net-mvc控制器操作返回File或ErrorMessage的最佳方法是什么?

  4. 4

    将Asp.Net MVC控制器转换为Web API的最佳方法

  5. 5

    将Asp.Net MVC控制器转换为Web API的最佳方法

  6. 6

    如何处理在 ASP.NET MVC 中返回文件的控制器结果

  7. 7

    如何使ASP.NET MVC控制器方法异步

  8. 8

    ASP.NET MVC 调用控制器方法 DevExpress

  9. 9

    控制器ASP.NET MVC中的存储库参数

  10. 10

    在ASP.NET MVC中获取控制器名称

  11. 11

    从ASP.NET MVC控制器中删除功能

  12. 12

    ASP.NET MVC控制器语法中的Linq

  13. 13

    在 asp .net mvc 中创建 Api 控制器

  14. 14

    ASP.NET MVC 在控制器中实现分析

  15. 15

    ASP.NET MVC 控制器中的持久数据

  16. 16

    如何在ASP.NET MVC中的控制器中调用模型方法

  17. 17

    如何在ASP.NET Core Web API中使用相同数量的参数重载控制器方法?

  18. 18

    在 ASP.NET 控制器方法中返回 JSON

  19. 19

    如何查看ASP.Net MVC中调用的每个控制器和操作方法?

  20. 20

    一个控制器中的ASP.NET Core MVC 1.0多发布方法

  21. 21

    摆脱仅在ASP.NET MVC中返回视图的控制器GET操作的方法

  22. 22

    ASP.NET MVC RemoteAttribute不会在控制器中触发操作方法

  23. 23

    如何在使用ASP .NET MVC的方法之间正确共享控制器中的对象?

  24. 24

    如何查看ASP.Net MVC中调用的每个控制器和操作方法?

  25. 25

    检查从控制器中的哪个视图方法调用了ASP.NET MVC

  26. 26

    如何使ASP.NET MVC控制器的GET方法仅从链接中调用?

  27. 27

    如何在ASP.NET MVC的控制器方法中“不要重复自己”?

  28. 28

    如何在ASP.NET MVC中的控制器中使用自定义方法

  29. 29

    ASP.NET MVC 5:在文件浏览器模式下处理路径的单控制器方法

热门标签

归档