1

jQuery ajaxによって送信されている次のhtmlフォームがあります。入力テキストボックスの「コントローラー内から」から値を取得する方法を理解できないようです。Request.Form["waitMinutes"] が機能することを期待していましたが、コントローラー内からnullになります。

コントローラー内からフォーム値を取得する秘訣は何ですか?

<form method="post" action=@Url.Action("UpdateWaitTime", "Facilities")' data-ucw-updateWaitTimeForm="@facility.Id" style="display:none" >
    <input type="hidden" id='faciility' value="@facility.Id" />
    <input type="text" id="waitMinutes" value="0" style="width:15px" />
    <input type="submit" value="Update Wait Time" />
    <span class="UpdateMessage"></span>
</form> 

私のJquery ajax送信コードは次のとおりです。

var ajaxUpdateWaitTime = function () {
        var $form = $(this);

        var options = {
            url: $form.attr('action'),
            type: $form.attr('method'),
            data: $form.serialize()
        };

        $.ajax(options).done(function (data) {
        ...
        });
4

1 に答える 1

2

入力の値をサーバーに送り返したい場合は、それらに を与える必要がありますname(ID を与えるだけでは十分ではありません)。

jQuery.serializable ドキュメントから(強調は私が追加)

シリアル化された文字列にフォーム要素の値を含めるには、要素に name 属性が必要です。

したがって、入力names を指定するだけで問題なく動作するはずです。

<form method="post" action=@Url.Action("UpdateWaitTime", "Facilities")' 
      data-ucw-updateWaitTimeForm="@facility.Id" style="display:none" >
    <input type="hidden" name='faciility' id='faciility' value="@facility.Id" />
    <input type="text" name="waitMinutes" id="waitMinutes" value="0" 
           style="width:15px" />
    <input type="submit" value="Update Wait Time" />
    <span class="UpdateMessage"></span>
</form> 
于 2013-02-13T05:51:35.913 に答える