0

我有具有属性的视图模型(用于过滤):

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 具有正确的值,但我什至无法调试,因为它没有进入 Action 方法。

你能帮助我吗?

PS对不起我的英语

4

2 回答 2

1

为了让调试器到达断点,它应该首先通过模型绑定器。模型绑定器是将 HTTP 请求中的值神奇地绑定到模型的东西。所有解析都将在模型绑定器中进行,如果它在那里失败,您将永远不会在您的操作方法中遇到断点。

在您的视图中尝试以下操作

@Html.EditorFor(m=>m.Id, new {name = ‘Id’, id=’Id’})

或者

@Html.TextBoxFor(m=>m.Id)

干杯

于 2013-01-31T06:23:53.340 回答
0

这就是我生成的视图的样子:

<input class="text-box single-line" id="Filter_Id" name="Filter.Id" type="text" value="">

PS:我正在使用许多其他属性(我的日期时间也可以为空)并且只有当我在这个愚蠢的 int 中输入值时才会得到错误?;/

于 2013-01-30T11:48:48.447 回答