【发布时间】:2013-07-09 10:30:20
【问题描述】:
我有一个 HiddenFor 字段缺少它的值标签。这是一个使用 razor 视图引擎的 MVC4 项目。
<input name="Id" id="teamId" type="hidden" data-val-required="The Id field is required." data-val-number="The field Id must be a number." data-val="true"/>
生成自:
@Html.HiddenFor(m => m.Id, new { id = "teamId" })
来自我的模型(使用 System.ComponentModel.DataAnnotations):
public class TeamModel
{
public int Id { get; set; }
[Required(ErrorMessage = "Please enter a team name"), MaxLength(25)]
public string Name { get; set; }
}
在将新模型传递给表单时,我什至尝试手动设置 Id 字段,如下所示:
return PartialView("EditTeam", new TeamModel{Id = 5});
然而,这仍然不显示值。奇怪的是它通过了客户端验证但没有通过服务器端验证。我在另一个项目中有类似的设置,效果很好。我看不出它们之间有什么区别。有什么明显的我错过了吗?谢谢:)
编辑: 如果我使用:
@Html.Hidden("test", Model.Id)
它有效。 HiddenFor 的某些东西将值设置为空白(看到原始 HTML,值字段在那里但只是设置为:value="")
编辑: 为了完整起见,这里是控制器(也是问题的根源):
public ActionResult GetTeam(int? id)
{
return PartialView("EditTeam", id.HasValue ? _teamLogic.GetById(id.Value) : new TeamModel());
}
【问题讨论】:
标签: asp.net-mvc razor