EditorFor helper:不显示负值

时间:2013-07-19 12:39:44

标签: c# asp.net-mvc html-helper

我有这个值:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0}")]
public int mCardNumber { get; set; }

在一个视图中,我正在渲染它:

Card Number: @Html.EditorFor(_item => _item.mCardNumber, Model.mCardNumber)<br />

原因是该值绑定到我的模型。但是,如果我不能插入负值,仍然可以进入否定值。将只显示一条错误消息。但我被要求允许编辑进入否定状态。任何人都可以帮我这么做吗?

2 个答案:

答案 0 :(得分:1)

您将需要利用一些JavaScript。将此JavaScript function添加到您的标记或共享的.js文件中。

function disallowNegativeNumber(e) 
{
    var charCode = (e.which) ? e.which : event.keyCode
    if (charCode == 45) {
        return false;
    }
    return true;
}

然后调用onkeypress="return disallowNegativeNumber(event)"。您可以通过htmlAttributes方法类型上的TextBoxFor参数添加该参数。那些比EditorFor更具体的。你要构建一个像这样的对象:

new { onkeypress = "return disallowNegativeNumber(event)" }

答案 1 :(得分:0)

好吧,我确实不得不废弃编辑器。经过多次观察后,我最终添加了this plugin by TexoTela

所以这是我的页面呈现方式:

@Html.TextBoxFor(_item => _item.mCardNumber, new { @class = "positive-integer" })

它有效!

相关问题