2014-12-03 2 views
0

Я получаю сообщение об ошибке при попытке сохранить свою форму, одно из полей является альтернативным, поэтому вы можете добавить его или нет, но он все равно должен работать.Добавление дополнительного поля в базу данных - давая мне ошибку

Это мой код

[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

Вы можете разместить свою модель - класс объект, который возвращается из 'M2CPDAL.Models.CustomerPortal.SerialUser()'?/также исключает ли какое-либо представление о поле, которое является проблемой? – Floremin

ответ

1

Убедитесь, что вы удалили [обязательно] атрибут из вашего поля в вашей ViewModel:

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

Если ваше поле не является строкой, убедитесь, что вы добавили? ключевое слово:

public int? MyAttribute { get; set; } 

Также проверьте, нет ли проверки JQuery в вашем поле на стороне клиента.

Обратите внимание, что если вы хотите отключить проверку для всех полей, вы можете изменить ваш контроллер не проверить ModelState, сняв флажок ModelState:

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

Да, это то, что я ищу. благодаря –