向数据库添加可选字段 - 给我错误

时间:2014-12-03 16:16:30

标签: asp.net asp.net-mvc asp.net-mvc-4

当我尝试保存表单时收到错误,其中一个字段是替代字段,因此您可以添加或不添加它但它仍然应该运行。

这是我的代码

    [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> 

1 个答案:

答案 0 :(得分:1)

确保从ViewModel中的字段中删除了[required]属性:

[Required(ErrorMessage = "")]
public string MyAttribute { get; set; }

如果您的字段不是字符串,请确保添加?像这样的关键字:

public int? MyAttribute { get; set; }

另请检查客户端的字段上是否没有JQuery验证。

请注意,如果要禁用所有字段的验证,可以修改控制器,以便通过删除ModelState检查来测试ModelState:

if(ModelState.IsValid)
{
// TODO:
}