从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; }
}

现在,当各种问题在视图中创建并提交时,控制器的动作代码应该是什么,我应该如何设计我的视图,以便我可以直接获得所有属性设置的问题列表?

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

模型绑定到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>

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

  1. 项目索引以0和
  2. 开头
  3. 各指标无差距

如果您还提供删除某些问题的功能(在添加/编辑它们时),则必须在每次删除时重新索引条目。

模型验证(表单或正确准备的对象)

这样做的好处是,您可以将数据注释属性放入应用程序模型类中,并自动验证所发布的对象,因此您不必自己执行此操作。