我想在应用程序中使用@Html.DisplayFor
而不是@Html.TextBoxFor
。
如果我使用@Html.TextBoxFor
,则可以将值传递给控制器,但是如果我使用@Html.DisplayFor
,则它每次都传递null。
请建议我如何使用在文本框中传递的相同数据,然后再传递给DisplayFor。
@for (int counter = 0; counter <= Model.Employees.Count - 1; counter++)
{
<tr>
<td>
@Html.TextBoxFor(m => m.Employees[counter].Name, null, new { @class = "form-control" }) do not want to use
@Html.DisplayFor(m => m.Employees[counter].Name, null, new { @class = "form-control" }) ///want to use
</td>
}
答案 0 :(得分:0)
如果您希望值包含在表单提交中,则必须将其绑定到表单输入。对于任何表单提交都是如此,而不仅仅是ASP.NET MVC。
要包含不可编辑的值,请使用
@Html.HiddenFor(m => m.YourPropertyHere)
为该属性生成一个<input type="hidden" />
元素。
因此,您的示例如下所示:
@for (int counter = 0; counter <= Model.Employees.Count - 1; counter++)
{
<tr>
<td>
@Html.DisplayFor(m => m.Employees[counter].Name, null, new { @class = "form-control" })
@Html.HiddenFor(m => m.Employees[counter].Name)
</td>
</tr>
}