当我尝试保存表单时收到错误,其中一个字段是替代字段,因此您可以添加或不添加它但它仍然应该运行。
这是我的代码
[HttpPost]
public ActionResult Save(EntrtyForm form)
{
var addForm = new M2CPDAL.Models.CustomerPortal.SerialUser();
addForm.ser_num = form.SerialNumber;
addForm.prod_num = form.ProductNumber;
addForm.UserName = form.UserName;
addForm.AltUserName = form.AltUserName;
cp.SerialUsers.Add(addForm);
cp.SaveChanges();
return RedirectToAction("Index");
}
我的保存按钮可以保存4个字段,如上所示
addForm.AltUserName = form.AltUserName;
是可选字段。 当我运行此代码时,它在数据库上显示null但在cp.SaveChanges()上给我一个错误;
如何使这个可选,所以如果用户输入字段无关紧要..
html代码:
<div>
@Html.LabelFor(m => m.AltUserName)
@Html.TextBoxFor(m => m.AltUserName, new { @class = "form" })
@Html.ValidationMessageFor(m => m.AltUserName)
</div>
答案 0 :(得分:1)
确保从ViewModel中的字段中删除了[required]属性:
[Required(ErrorMessage = "")]
public string MyAttribute { get; set; }
如果您的字段不是字符串,请确保添加?像这样的关键字:
public int? MyAttribute { get; set; }
另请检查客户端的字段上是否没有JQuery验证。
请注意,如果要禁用所有字段的验证,可以修改控制器,以便通过删除ModelState检查来测试ModelState:
if(ModelState.IsValid)
{
// TODO:
}