У меня есть следующая модель:
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; }
}
и следующая пара методов Add в контроллере:
[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()
?