【问题标题】:MVC3 strong typed model with multiple inputs具有多个输入的 MVC3 强类型模型
【发布时间】:2011-12-20 19:38:13
【问题描述】:

如何将页面中的多个输入全部输入到我的模型列表中,其中模型定义为

public class MatrixSet
{
    List<MatrixPoints> matrixPoints { get; set; }
}

public class MatrixPoints
{
    double x { get; set; }
    double y { get; set; }
}

我不确定在视图中使用什么来表示,所有输入矩阵点的 4 个输入字段,然后当发布控制器时,控制器将具有 matrixset 类型的模型,其中包含输入的矩阵点列表看法。我知道如何在不通过模型的情况下做到这一点,但我正在努力坚持最佳实践方法。我可以让每个输入字段为@Html.TextBoxFor(),然后假设在我的视图顶部我正在使用@model Models.MatrixSet,它只会填充MatrixSet 中的MatrixPoints 列表吗?

【问题讨论】:

    标签: c# asp.net-mvc-3 input model controller


    【解决方案1】:

    找到答案:

    @Html.TextBoxFor(model => model.matrixPoints[0].x)
    @Html.TextBoxFor(model => model.matrixPoints[0].y)
    

    在这方面,您可以迭代和动态地向模型对象添加项目,同时在发布表单时仍保持整个模型并保留来自已定义模型的验证。

    【讨论】:

      【解决方案2】:

      您必须寻找绑定到 View 的集合,稍后当您发布表单时,所有集合都被收集到 ActionResult 中。

      这是对您有帮助的链接 http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

      它对我有用。

      谢谢。

      【讨论】:

      • 这种方法不是强类型的,不使用助手。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      相关资源
      最近更新 更多