从asp.net mvc视图中获取对象列表的最佳实践
本文关键字:列表 最佳 取对象 获取 net asp mvc 视图 | 更新日期: 2023-09-27 18:15:40
我有一个类,像
public class Questions
{
public long ID { get; set; }
public string questionText { get; set; }
public int questionType { get; set; }
}
现在,当各种问题在视图中创建并提交时,控制器的动作代码应该是什么,我应该如何设计我的视图,以便我可以直接获得所有属性设置的问题列表?
模型绑定到IList<T>
我已经写了关于模型绑定到IList<T>
。我认为这正是你想要解决的问题。我的博客上还有一些帖子可能会对你有很大帮助,特别是因为你没有说你是有HTML形式的问题还是由一些通用问题形式构建的Javascript对象。无论如何。这两篇文章将帮助你解决这两个问题:
- Asp.net MVC模型绑定到
IList<T>
- 使用jQuery Ajax向Asp.net MVC发送复杂的JSON对象
通过理解Asp.net MVC模型绑定,您将能够轻松地将客户端数据(表单或对象)绑定到:
public ActionResult AddQuestions(IList<Question> questions)
{
// process questions
}
假设你要发回一个HTML表单
主要要求是正确索引HTML字段名,因为名称是那些被发送回服务器的名称。在您的例子中,您的字段应该是:
<input type="text" value="questions[0].questionText" />
<select name="question[0].questionType">
<!-- options -->
</select>
当你动态添加新的对(形成新的问题)时,你必须确保:
- 项目索引以0和 开头
- 各指标无差距
如果您还提供删除某些问题的功能(在添加/编辑它们时),则必须在每次删除时重新索引条目。
模型验证(表单或正确准备的对象)
这样做的好处是,您可以将数据注释属性放入应用程序模型类中,并自动验证所发布的对象,因此您不必自己执行此操作。