9

asp.net mvc 2 と html.textboxfor ヘルパーに問題があります。フォームで次のコードを使用します。

<%= Html.TextBoxFor(model => model.Zip, new { @class = "txt", id = "zip", tabindex = 1 })%>

ユーザーがフォームを送信すると、私は郵便番号を検証し、郵便番号が無効な場合は、正しい郵便番号を設定します。私のモデルには修正されたzipがあり、aspから生成されたhtmlコードには古いzip値が含まれています。

サンプル: ユーザー書き込み zip: 12345 私の検証クラス、zip を次のように修正: 12346 私のモデルには新しい zip: 123456 が含まれています。GUI では 12345 しか表示されません

何が問題ですか?

4

2 に答える 2

8

ヘルパーはテキスト ボックスの生成時に常に POST された値を使用するため、コントローラー アクションの値を変更することはできません。これは仕様によるものであり、回避したい場合は、独自のヘルパーを作成するか、手動でテキスト ボックスを生成する必要があります。

<input 
    type="text" 
    name="Zip" 
    value="<%= Html.Encode(Model.Zip) %>" 
    class="txt" 
    id="zip" 
    tabindex="1" 
/>
于 2010-04-06T14:22:49.367 に答える
2

ModelState.Clear() を使用してモデル状態をクリアし、オブジェクトを更新してから返します。

于 2012-02-10T16:52:26.037 に答える