我有以下模式:asp.net MVC 3驗證爲Id字段與EF代碼第一
public class Product
{
[Key]
[HiddenInput(DisplayValue = false)]
public int Id { get; set; }
[Required]
[StringLength(10)]
public string ProductCode { get; set; }
[Required]
[StringLength(40)]
public string ProductName { get; set; }
}
和下面的一對添加方法在控制器的:
[HttpGet]
public ActionResult Add()
{
return View();
}
[HttpPost]
[ValidateInput(false)]
[ValidateAntiForgeryToken]
public ActionResult Add(Product product)
{
productRepository.Add(product);
return RedirectToAction("Index");
}
這是添加視圖:
@using Models
@model Product
<h2>Add Product</h2>
@using (@Html.BeginForm("Add", "Home")) {
@Html.AntiForgeryToken()
@Html.EditorForModel()
<input type="submit" id="btnSubmit" value="Submit"/>
}
一切都顯示得很好,很遺憾我無法提交表單。我花了一段時間才發現Id字段得到驗證。事實上,如果我刪除HiddenInput
屬性,我可以看到提交它告訴我Id字段是必需的。
有沒有辦法在使用EditorForModel()
時將其標記爲不需要?
是的是的!謝謝......只有一件事,你有一個錯字(我相信),它是'DataAnnotationsModelValidatorProvider' - 你有一個額外的「元數據」。 –
糟糕!你是對的。我更新了我的答案,以糾正我的大腦鎖定(手指打字,否則大腦被鎖定)。 – counsellorben