我有一個缺少值標記的HiddenFor字段。這是使用剃鬚刀視圖引擎的MVC4項目。 (使用System.ComponentModel.DataAnnotations)HiddenFor缺失值標記
@Html.HiddenFor(m => m.Id, new { id = "teamId" })
從我的模型:
<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"/>
這是從產生
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());
}
這似乎應該工作,但它沒有。價值仍然通過空/空白。 – Tikeb
這很奇怪,我剛剛在我自己的代碼中測試過,它正在工作:S – Vic
對不起,我錯過了最初問題中的控制器。我會更新問題並標記我的答案已完成 – Tikeb