在我的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">
我想要完全没有默认值的行为。有没有办法在不创建自己的编辑器模板的情况下这样做?
校长是小数。在这种情况下,使其可以为空可能是一种选择,我想强制用户输入有效的数字。
答案 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默认值。