在Razor EditorFor模板中,防止呈现默认值

时间:2014-04-17 03:59:13

标签: asp.net-mvc razor

在我的Razor view中。我有这样的标记:

<div class="form-group">
    @Html.LabelFor(model => model.Principal, new { @class = "control-label col-md-3" })
    <div class="col-md-8">
        @Html.EditorFor(model => model.Principal)
    </div>
</div>

Principal具有必需的数据注释,因此我的html呈现为:

<input class="text-box single-line" data-val="true" data-val-number="The field Principal must be a number." data-val-required="The Principal field is required." id="Principal" name="Principal" type="text" value="0.00">

我想要完全没有默认值的行为。有没有办法在不创建自己的编辑器模板的情况下这样做?

校长是小数。在这种情况下,使其可以为空可能是一种选择,我想强制用户输入有效的数字。

2 个答案:

答案 0 :(得分:4)

我假设原则是模型中的十进制类型。十进制类型是值类型且不可为空,因此.net必须始终赋值。如果不这样做,则会分配默认值。

如果您不想使用默认值,则必须使该属性为空。

答案 1 :(得分:1)

Jquery有一种方法。在您的模型中no need制作property nullable

如果Jquery具有默认值,只需通过Textbox重新分配值。

$(document).ready(function () {
   if($('#Principle ').val() == '0.00' || $('#Principle ').val() == '0')
   {
       $('#Principle ').val('');
   }
});

当页面准备就绪/完成加载时会触发。

如您所知,如果您没有为Value Types分配值,将分配.Net Framework默认值。