2013-04-25 98 views
0

以我剃刀形式我有这样的:如何从模型中隐藏模型中的默认值?

@Html.TextBoxFor(vm => vm.User.TotalSales) 

因为用户对象不为空,TotalSales默认为0的值,并且该显示器的形式。

有没有一种方法可以使用内置的帮助程序将其清除,还是必须通过javascript或其他方法执行此操作?

我害怕,如果我必须通过JavaScript来做到这一点,当用户发布表单,并有错误,我的JavaScript将再次擦除该文本框,当它不应该。

+0

让totalSales可空,并为其分配空当创建一个模型 – 2013-04-25 20:07:52

回答

0

你可以做一个检查你的输出前的文本框:

@if (vm.User.TotalSales != 0) 
{ 
    Html.TextBoxFor(vm => vm.User.TotalSales) 
} 
else{ 
    Html.TextBoxFor(vm => vm.User.TotalSales.Age, new { @Value = "" }) 
} 
+0

我想你误会了,该vm.User永远不能为null,这个问题是物业TotalSales是int,默认为0。所以形式文本框默认值为0,我希望它是空白的。 – loyalflow 2013-04-25 19:01:39

+0

哦,所以你仍然想要文本框,但空白,对不对? – Kenneth 2013-04-25 19:02:29

+0

是的,我不希望默认值为0. – loyalflow 2013-04-25 19:06:50

1

在我的应用我做了性能可空,并与RequiredAttribute标签标示他们。

+0

我的房子是必填的,我不想在我的分表中填入空格。 – loyalflow 2013-04-25 19:02:12

+2

我用来为MVC创建单独的模型。因此,在数据库模型中具有非空值属性并且在视图模型中可以为空是不成问题的。当然,这需要额外的努力,但可以将更多数据放在模型中而不是ViewBag中。 – Alex 2013-04-25 19:11:45

0

使用具有所需属性的模型验证。像这样的东西。

[Required] 
public int age{ get; set; }