当我们在MVC3中使用多个模型时,如何更改文本框的输入名称?



我正在使用多个模型,因此 textboxfor 的输入名称因多个模型而异,因此参数始终为 null。

我将解释我的意思,如下所示:

@Html.TextBoxFor(model => model.managers.person_name)

我有两个表,分别是"经理"和"mayor_assistance",我用我的班级称这些模型。 在这一点上一切都很好。但是当我将这些模型与 TextBoxFor 一起使用时,输入名称设置为"manager.person_name",但我的表名称为 manager 有一个person_name列,因此我的参数始终为空,如您在下面看到 html 标签

<input id="managers_person_name" name="managers.person_name" type="text" value="">

然后我必须用"new"标签更改输入名称的tex框,我得到相同的结果

 @Html.TextBoxFor(model => model.managers.person_name,new { @name="person_name" })

那么如何更改文本框的输入名称呢?

终于找到了答案。我想分享面对我的问题的解决方案。

TextBoxFor 或类似 EditBoxFor 等的东西,它们的名称和 ID 由模型上的属性设置。因此,您得到的参数始终为 Null!

解决方案非常简单,只需使用文本框并将列名称设置为字符串即可

  <div class="editor-field ">
            @Html.TextBox("person_name")
             @Html.ValidationMessage("person_position")
        </div>

最新更新