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)