Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何隐藏模型中的默认值以避免在表单中显示?_C#_Asp.net Mvc_Asp.net Mvc 4_Entity Framework 4 - Fatal编程技术网

C# 如何隐藏模型中的默认值以避免在表单中显示?

C# 如何隐藏模型中的默认值以避免在表单中显示?,c#,asp.net-mvc,asp.net-mvc-4,entity-framework-4,C#,Asp.net Mvc,Asp.net Mvc 4,Entity Framework 4,以剃须刀的形式,我有这样一个: @Html.TextBoxFor(vm => vm.User.TotalSales) 由于用户对象不为null,TotalSales的值默认为0,并显示在表单中 有没有一种方法可以使用内置的helper将其清空,或者我必须通过javascript或其他方式来实现这一点 我担心如果我必须通过javascript执行此操作,当用户发布表单并且出现错误时,我的javascript将再次擦除该文本框,而它不应该这样做。您可以在输出文本框之前进行检查: @if (

以剃须刀的形式,我有这样一个:

 @Html.TextBoxFor(vm => vm.User.TotalSales)
由于用户对象不为null,TotalSales的值默认为0,并显示在表单中

有没有一种方法可以使用内置的helper将其清空,或者我必须通过javascript或其他方式来实现这一点


我担心如果我必须通过javascript执行此操作,当用户发布表单并且出现错误时,我的javascript将再次擦除该文本框,而它不应该这样做。

您可以在输出文本框之前进行检查:

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

在我的应用程序中,我将属性设置为nullable,并将它们标记为RequiredAttribute。

使用带有required属性的模型验证。像这样的

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

我想你误解了,vm.User从来都不是空的,问题是TotalSales属性是int,默认为0。因此表单文本框默认值为0,我希望它为空。是的,我不希望默认值为0。好的,我添加了一个else子句,该子句输出文本框,但值为空。我还编辑了checkMine是必填字段,我不希望db表中出现空值。我使用它为MVC创建单独的模型。所以,在DB模型中具有不可为null的属性,而在视图模型中具有可为null的属性并不是问题。当然,这需要额外的努力,但可以在模型中放置更多的数据,而不是ViewBag