Asp.net 无法在文本框中键入double

Asp.net 无法在文本框中键入double,asp.net,asp.net-mvc,asp.net-mvc-3,entity-framework,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Entity Framework,我正在开发一个mvc.NETWeb应用程序,并使用实体框架生成模型。我有一些包含双重属性的类。我的问题是,当我使用@HTML.EditorFor(model=>model.Double\u属性)并测试我的应用程序时,我不能在编辑器中键入Double,我只能键入整数。(我使用Razor引擎查看)如何解决这个问题?谢谢 更新:我发现我可以键入具有此格式的双精度字符#,####(逗号后有3个数字,但我不想让用户键入特定格式,我希望接受所有格式(逗号后有1个或多个数字) 有人知道如何解决这个问题吗?请尝

我正在开发一个mvc.NETWeb应用程序,并使用实体框架生成模型。我有一些包含双重属性的类。我的问题是,当我使用
@HTML.EditorFor(model=>model.Double\u属性)
并测试我的应用程序时,我不能在编辑器中键入Double,我只能键入整数。(我使用Razor引擎查看)如何解决这个问题?谢谢

更新:我发现我可以键入具有此格式的双精度字符#,####(逗号后有3个数字,但我不想让用户键入特定格式,我希望接受所有格式(逗号后有1个或多个数字)
有人知道如何解决这个问题吗?请尝试使用自定义databinder:

public class DoubleModelBinder : IModelBinder
{
    public object BindModel( ControllerContext controllerContext,
        ModelBindingContext bindingContext )
    {
        var valueResult = bindingContext.ValueProvider.GetValue( bindingContext.ModelName );
        var modelState = new ModelState { Value = valueResult };
        object actualValue = null;

        try
        {
            actualValue = Convert.ToDouble( valueResult.AttemptedValue,
                CultureInfo.InvariantCulture );
        }
        catch ( FormatException e )
        {
            modelState.Errors.Add( e );
        }

        bindingContext.ModelState.Add( bindingContext.ModelName, modelState );
        return actualValue;
    }
}
并在global.asax中注册活页夹:

protected void Application_Start ()
{
    ...
    ModelBinders.Binders.Add( typeof( double ), new DoubleModelBinder() );
}

您可以使用添加符号:

[DisplayFormat(DataFormatString = "{0:#,##0.000#}", ApplyFormatInEditMode = true)]
public double? Double_attribute{ get; set; }
现在…瞧,你可以在视图中使用双精度:

@Html.EditorFor(x => x.Double_attribute)

对于其他格式,您可以检查或只搜索“DataFormatString double”此字段所需的选项。

是否启用了客户端验证?是否尝试使用不同的小数分隔符:。和,(点和逗号)?这是不正常的,它可以工作,你可能有一些JS脚本产生了问题。删除JS引用并尝试查看。是的,它被激活了。我尝试了两者,但没有work@HediNaily,您也可以发布您的模型定义吗?这应该没有什么区别,但您是否尝试过,
@HTML.EditorFor(model=>model.Double\u属性)
?另外,发布您的型号代码,您是否在
型号上有任何属性。Double_属性
?我只能键入具有此格式的Double(逗号后有3个数字,但我不想让用户键入特定格式,我想接受所有格式(逗号后有1个或更多数字)