0

部分ビューから MVC3 コントローラにフォーム データを送信しようとしています。何らかの理由で、送信されたデータ モデルが入力されません。

これは、フォーム送信を処理する jquery です。

        $(document).on('submit', '#FormNewCall', function (e) {
            e.preventDefault();
            $.ajax(
            {
                async: true,
                type: "POST",
                url: $(this).attr('action'),
                data: $(this).serialize(),
                success: function (data) {
                    $("#callTable").replaceWith(data);
                },
                error: function () {
                    alert("Error submitting call");
                },
                complete: function () {
                    CloseNewCall();
                }
            })
        });

「on」(最初の行) を使用している理由は、「FormNewCall」を含む部分ビューが、必要な場合にのみ jquery/ajax を介して追加されるためです。

コントローラーの ActionResult は次のようになります。

    // POST: /Default/SubmitCall/
    [Authorize]
    [HttpPost]
    public ActionResult SubmitCall(ServiceCallModel SubmittedModel)
    {
        if (Request.IsAjaxRequest())
        {
              // Do things before returning a new view
        }
        else
        {
            return View(); 
        }
    }

実際のフォームは、次のような多くのものを含む部分ビューです。

    <div class="rowContainer">
        <tr class="SmallRow">
            <td>@Html.Label("Brief")
            </td>
            <td>@Html.TextBoxFor(m => m.NewCallModel.description)
            </td>
        </tr>
    </div>

コントローラーでブレークポイントを設定すると、パラメーター「SubmittedModel」は存在しますが、すべて空の値になります。

プロパティ「Request.Form」が、送信されたフォームからのすべての予想されるデータを含む json 文字列であるかのように見えます。

足りないものはありますか?

4

0 に答える 0