7

これは、ある意味で非常にばかげた質問になる可能性がありますが、基本的に、ビューにフォームとしてアタッチされるモデルにこの「フォーム」がありますが、実際にデータを渡すことができませんでした意見。Id プロパティと String プロパティの 2 つのプロパティしかありません。ページの非表示のテキスト ボックスから String プロパティにテキストを入力しようとしましたが、うまくいきませんでした。

フォームコード:

    public class AllocateListForm
{
    public int Id { get; set; }

    public virtual string HiddenText { get; set; }
}

関連するビュー コード:

  <% using (Html.BeginForm("SaveExit", "User", new { }, FormMethod.Post, new { id = "selectExitPoints" }))  { %>
    <fieldset>
            <input type="hidden" id="HiddenText" />
    </fieldset>
  <% } %>

バックグラウンドでテキストを入力する JQuery がありHiddenText、それが入力されていることを保証できます。バックグラウンドでは Ajax 送信を実行する JQuery もあり、コードはアプリケーションの他の場所で問題なく使用されるため、問題なく機能することをお約束します。フォームをサーバーに送信するアクションを実行し、これが指すコントローラー コードに移動すると、ブレークポイントが設定されているので、コンソールに移動して、フォームの HiddenText フィールドにデータがあるかどうかを確認できます。ヌル。誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

10

入力の名前を「HiddenText」に割り当てると、モデル バインダーはそれを取得する必要があります。私はあなたのコントローラーアクションAllocateListFormがパラメーターとして を受け入れると仮定しています。

<input type="hidden" name="HiddenText" id="HiddenText" />

次のように Html ヘルパーを使用することもできます。

@Html.HiddenFor(model => model.HiddenText, new { id = "HiddenText" })

編集: メイン モデルのプロパティとして AllocateListForm を追加し、ヘルパーを次のように変更します。@Html.HiddenFor(model => model.MyAllocateListForm.HiddenText)

于 2013-05-30T12:43:43.857 に答える
4

Razor 方式で実行する場合は、これでうまくいくはずです。

@Html.HiddenFor(model => model.HiddenText);
于 2013-05-30T12:45:56.940 に答える