Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net mvc中从视图中获取对象列表的最佳实践_C#_Html_Asp.net Mvc_Model Binding - Fatal编程技术网

C# 在asp.net mvc中从视图中获取对象列表的最佳实践

C# 在asp.net mvc中从视图中获取对象列表的最佳实践,c#,html,asp.net-mvc,model-binding,C#,Html,Asp.net Mvc,Model Binding,我有一节课像 public class Questions { public long ID { get; set; } public string questionText { get; set; } public int questionType { get; set; } } 现在,当在视图中创建并提交各种问题时,控制器的操作代码应该是什么?我应该如何设计视图,以便直接获得所有属性设置的问题列表 提前感谢。模型绑定到IList 我已经写过关于模型绑定到IList的

我有一节课像

public class Questions
{
    public long ID { get; set; }
    public string questionText { get; set; }
    public int questionType { get; set; }
}
现在,当在视图中创建并提交各种问题时,控制器的操作代码应该是什么?我应该如何设计视图,以便直接获得所有属性设置的问题列表

提前感谢。

模型绑定到
IList
我已经写过关于模型绑定到IList的文章。我想这正是你想要解决的问题。在我的博客上还有一些帖子可能会对你有很大帮助,特别是因为你没有说你是否有一个HTML形式的问题,或者由一些通用的问题形式构建的Javascript对象。无论如何这两篇文章将帮助您解决这两个问题:

通过了解Asp.net MVC模型绑定,您将能够轻松地将客户端数据(表单或对象)绑定到:

公共行动结果添加问题(IList问题)
{
//过程问题
}
假设您正在发回一个HTML表单 主要要求是正确地索引HTML字段名,因为这些名称是返回到服务器的名称。在您的情况下,字段应为:

<input type="text" value="questions[0].questionText" />
<select name="question[0].questionType">
    <!-- options -->
</select>

当您动态添加新对(以形成新问题)时,您必须确保:

  • 项目索引从0和0开始
  • 索引中没有空白
  • 如果您还提供了删除某些问题的功能(在添加/编辑问题时),则必须在每次删除时重新索引项目

    模型验证(表格或正确准备的对象) 这样做的好处是,您可以将数据注释属性添加到应用程序模型类中,并自动验证发布的对象,因此您不必自己进行验证

    <input type="text" value="questions[0].questionText" />
    <select name="question[0].questionType">
        <!-- options -->
    </select>