0

プロパティを持つビューモデル(フィルタリングに使用)があります:

int? Id {get;set;}

私の見解では、私はそのようなsthを持っています:

@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]]'.

私はそのようなsthをしたくありません:

@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:私は他の多くの属性を使用しています(私の日時もnull許容です)、この愚かな整数に値を入力した場合にのみエラーが発生しますか?; /

于 2013-01-30T11:48:48.447 に答える