2013-02-22 57 views
0

我的模型看起来像:型号字符串属性空上提交的MVC 3

public class MyViewModel 
    { 
     public MyViewModel() 
     { 
      MyClasses = new List<MyClass>(); 
     } 

     public List<MyClass> MyClasses{ get; set; } 

     [Required(ErrorMessage = "is required.")] 
     public string Prop1{ get; set; } 

     [Required(ErrorMessage = "is required.")] 
     public int Prop2{ get; set; } 
    } 

我对柱控制器:

[HttpPost] 
public ActionResult MyActionOnPost(MyViewModel model) 
{ 
//save to DB 
//Prop2 is not null but Prop1 is nulll. why?? 
} 

查看代码:

@ Html.TextBoxFor( m => m.Prop2)@ Html.ValidationMessageFor(m => m.Prop2)

@ Html.TextBoxFor(M => m.Prop1)@ Html.ValidationMessageFor(M => m.Prop1)

我可以看到Prop2值上提交但Prop1null。任何想法?

+1

我可以在提交时看到两个值。我已经尝试了您的视图模型和文本框以及 – 2013-02-22 08:53:34

+0

虽然很简单,但没有看到价值。 ModelState.IsValid是false。它说Prop1是空的。 – user1480864 2013-02-25 08:38:00

回答

0

[DisplayFormat(ConvertEmptyStringToNull = FALSE)]

这是你的答案。将此添加到代码中的每个字符串中,并且它将完美工作!

+0

添加这个就像你添加了必要的标签。添加后,您将获得一个空字符串而不是null。 – Lakshay 2013-02-22 06:42:14

+0

对不起,我为什么在输入内容时看到空或空? – user1480864 2013-02-22 06:48:18

+0

亲爱的我想你只有在发布空的Prop1文本框时才能得到null。如果你用一些值填充文本框然后发布它,我相信你会在服务器端获得它。 我不确定你的问题,即使你在文本框中填充一些值,你是否为null? – Lakshay 2013-02-22 08:18:43

相关问题