1

MVC アクションへの jQuery ポスト リクエストの後にデータを受信する際に問題が発生しました。私は標準的なシナリオを持っています。ユーザーからいくつかの情報を収集し、それをアクションに送信して、このデータをデータソースに追加し、新しいエントリの ID を UI に返してさらに使用する必要があります。

jQuery

$('#somediv').on('click', '.Save', function () {
    var data = $(this).closest('form').serialize();
    $.post('/home/add', data, function (data) {
        $('#div-container').html(data);            
    });
});

MVC アクション

[HttpPost]
public ActionResult Add(Data data)
{
    Data addedData = logic.Add(data);
    ViewData.Model = addedData;
    return PartialView("PatrialView");
}

部分図

@model MyClass.Data

@using (Html.BeginForm())
{
        <div id="div-container">
            @Html.HiddenFor(model => Model.Id)                
            @Html.TextBoxFor(model => Model.Name)                
        </div>

        <input type="button" class="btn Save" value="Save" />
    </div>
</li>
}

また、ホームコントローラーには、キャッシュを無効にするフィルターがあります。

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]

正しいデータが実行に移されます。ViewData.Model には、部分ビューが呼び出される前の正しい ID が含まれています。また、ビューを介してデバッグし、データはコントロールに正しく設定されていますが、応答本文 (IE Dev Tool で確認) は id = 0 です。コードの何が問題なのか教えてください。

4

0 に答える 0