Asp.net mvc 为integer属性提供小数点时,ASP.NET MVC UpdateModel中断

Asp.net mvc 为integer属性提供小数点时,ASP.NET MVC UpdateModel中断,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,在渲染视图中,如果用户输入值(如1.0或1.2)而不是1,则如果所涉及的属性是整数,则UpdateModel将引发异常 有合适的解决方法吗?您可以简单地阻止用户在我在文本框中提供的代码中输入小数点或字母。为此,我使用以下代码 $(document).ready(function() { $("#txtboxToFilter").keydown(function(event) { // Allow: backspace, delete, tab, escape, and enter

在渲染视图中,如果用户输入值(如1.0或1.2)而不是1,则如果所涉及的属性是整数,则UpdateModel将引发异常


有合适的解决方法吗?

您可以简单地阻止用户在我在文本框中提供的代码中输入小数点或字母。为此,我使用以下代码

$(document).ready(function() {
$("#txtboxToFilter").keydown(function(event) {
    // Allow: backspace, delete, tab, escape, and enter
    if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || 
         // Allow: Ctrl+A
        (event.keyCode == 65 && event.ctrlKey === true) || 
         // Allow: home, end, left, right
        (event.keyCode >= 35 && event.keyCode <= 39)) {
             // let it happen, don't do anything
             return;
    }
    else {
        // Ensure that it is a number and stop the keypress if it is not
        if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
            event.preventDefault(); 
        }   
    }
});

})

当然会的,因为类型不匹配我猜得那么多。但我想知道是否有一种简单的方法可以解决这个问题。如果它是整数,你应该在savingulty之前验证模型。UpdateModel不允许你这样做。为什么你要使用UpdateModel而不是使用典型的参数模型绑定?谢谢,我认为这是最好的方法。