C# 可为空<;长期>;允许添加字符串值

C# 可为空<;长期>;允许添加字符串值,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我正在使用asp.net mvc web应用程序,在模型类中具有以下属性:- public Nullable<long> TOTALMEMORY { get; set; } 如果表单上的值不是null或long类型,则模型不会绑定到该属性。例如,如果表单上的字段TOTALMEMORY是一个输入,而您输入了“abc123”,那么它将失败-因为abc123不是long类型。您使用此属性时的视图是什么样子的?请只发布相关行,而不是整个视图。还包括控制器动作方法签名。@Ahmedilya

我正在使用asp.net mvc web应用程序,在模型类中具有以下属性:-

 public Nullable<long> TOTALMEMORY { get; set; }

如果表单上的值不是null或long类型,则模型不会绑定到该属性。例如,如果表单上的字段TOTALMEMORY是一个输入,而您输入了“abc123”,那么它将失败-因为abc123不是long类型。您使用此属性时的视图是什么样子的?请只发布相关行,而不是整个视图。还包括控制器动作方法签名。@Ahmedilya这就是我所认为的行为。但如果我输入字符串,则不会显示任何验证错误,并且会在DB上引发异常。什么DB异常?如果数据类型不正确,模型将不会绑定。除了在属性中实际设置的内容外,还要查看DB中列的字段类型及其约束
<div >
    <span class="f"> @Html.DisplayNameFor(model=>model.SystemInfo.MemoryInfo.TOTALMEMORY) </span> 

    @Html.EditorFor(model =>model.SystemInfo.MemoryInfo.TOTALMEMORY) <i class=" icon icon-blue icon-star-on "></i>
    @Html.ValidationMessageFor(model =>model.SystemInfo.MemoryInfo.TOTALMEMORY)

</div>
public ActionResult Create(ServerJoin sj, FormCollection formValues)
        {
          //code goes here
            }
            if (ModelState.IsValid)
            {