我有使用属性的视图模型(用于过滤):
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有适当的值,但我甚至无法进行debbug,因为它没有进入Action方法。
你能帮助我吗?
对不起我的英文
答案 0 :(得分:1)
要使调试器到达断点,首先应该通过模型绑定器。模型绑定器可以神奇地将HTTP请求中的值绑定到模型。所有解析都将在模型绑定器上进行,如果在那里失败,您将永远不会在操作方法中遇到断点。
在您的观点中尝试以下内容
@Html.EditorFor(m=>m.Id, new {name = ‘Id’, id=’Id’})
或
@Html.TextBoxFor(m=>m.Id)
干杯
答案 1 :(得分:0)
这就是我生成的视图的样子:
<input class="text-box single-line" id="Filter_Id" name="Filter.Id" type="text" value="">
PS:我正在使用许多其他属性(我的日期时间也可以为空)并且只有当我在这个愚蠢的int中输入值时才会出错? ; /