Asp.net mvc 3 MVC3:Convert";Int32到可为空的“;通过Html.Editorfor发布可为null的int时出错
我的视图模型(用于过滤)具有以下属性:Asp.net mvc 3 MVC3:Convert";Int32到可为空的“;通过Html.Editorfor发布可为null的int时出错,asp.net-mvc-3,post,nullable,editorfor,type-conversion,Asp.net Mvc 3,Post,Nullable,Editorfor,Type Conversion,我的视图模型(用于过滤)具有以下属性: int? Id {get;set;} 在我看来,我有这样的想法: @Html.EditorFor(m=>m.Id) 当我提交表格时,我收到错误信息: Invalid cast from 'System.Int32' to 'System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'.
int? Id {get;set;}
在我看来,我有这样的想法:
@Html.EditorFor(m=>m.Id)
当我提交表格时,我收到错误信息:
Invalid cast from 'System.Int32' to 'System.Nullable`1[[System.Int32,
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'.
我不想做那样的事:
@Html.TextBox("Model.Id", Model.Id.HasValue ? MOdelId.Value : 0)
当我签入Fiddler时,有一个参数ID,具有适当的值,但我甚至无法消除bug,因为它没有进入操作方法
你能帮我吗
PS对不起,我的英语是这样生成的视图:
<input class="text-box single-line" id="Filter_Id" name="Filter.Id" type="text" value="">
PS:我正在使用许多其他属性(我的日期时间也可以为空),只有当我在这个愚蠢的int?中输入值时,我才会得到这个错误/ 调试器要到达断点,应该首先通过模型绑定器。模型绑定器是将HTTP请求中的值神奇地绑定到模型的东西。所有解析都将在模型绑定器上进行,如果在那里失败,您将永远不会碰到操作方法中的断点 在您的视图上尝试以下操作
@Html.EditorFor(m=>m.Id, new {name = ‘Id’, id=’Id’})
或
干杯使用给定的代码,没有理由出现演员错误。所以我建议你们展示一下你们的帖子操作中发生了什么。你们能展示一下你们的帖子负载吗,就像Fiddler,FireBug或者Chrome开发者工具栏上看到的一样?你还可以展示你的控制器动作的签名吗?但它甚至没有进入我的后期动作。它不会停在我的断点上。@Elbar,但你能看到你的视图吗?
@Html.TextBoxFor(m=>m.Id)