Asp.net mvc 使Html.TextBoxFor在MVC 4中将未初始化的整数属性显示为空字符串

Asp.net mvc 使Html.TextBoxFor在MVC 4中将未初始化的整数属性显示为空字符串,asp.net-mvc,asp.net-mvc-4,html-helper,html.textboxfor,Asp.net Mvc,Asp.net Mvc 4,Html Helper,Html.textboxfor,我已将Html.TextBoxFor添加到我的视图中: @Html.TextBoxFor(x => x.zip, String.Empty, new { @class = "gsTextBox", placeholder = "Enter your zip" }); 它在输入中显示0,而不是空字符串 我也找到了解决办法,但似乎很可怕。还是这是个好办法?或者我应该使用javascript将0替换为空字符串?试试这个-使int为空 public int? zip { get;set; }

我已将Html.TextBoxFor添加到我的视图中:

@Html.TextBoxFor(x => x.zip, String.Empty, new { @class = "gsTextBox", placeholder = "Enter your zip" });
它在输入中显示0,而不是空字符串

我也找到了解决办法,但似乎很可怕。还是这是个好办法?或者我应该使用javascript将0替换为空字符串?

试试这个-使int为空

public int? zip { get;set; }
试试这个-使int为空

public int? zip { get;set; }

或者,如果您不想使用nullables:

@Html.TextBoxFor(x => x.zip, new { placeholder = "Enter your zip", @class = "gsTextBox", @Value = (Model.zip > 0 ? Model.zip.ToString() : string.Empty) })

空字符串将导致占位符出现。如果出现验证错误或类似情况并返回页面,此代码将显示用户输入的值。。。或者,如果不大于0,则为占位符。

或者,如果不想使用空值:

@Html.TextBoxFor(x => x.zip, new { placeholder = "Enter your zip", @class = "gsTextBox", @Value = (Model.zip > 0 ? Model.zip.ToString() : string.Empty) })

空字符串将导致占位符出现。如果出现验证错误或类似情况并返回页面,此代码将显示用户输入的值。。。或占位符(如果不大于0)。

如果您不想通过Nullable属性更改模型:

使用javascrip或Jquery方式

$("input.no-init").val("");

如果您不想通过Nullable属性更改模型:

使用javascrip或Jquery方式

$("input.no-init").val("");