-3

RAZOR (ASP.NET MVC 3) とリスト型のモデルがあります。Model から Razor に任意の要素を変更した後、まったく同じモデルを投稿した後、MODIFIED (変更された場合) の値で更新されます。

        @foreach (var item in Model)
        {
        <tr> 
            <td>@Html.DisplayFor(modelItem => item.InputID)</td>

            @if (@ViewBag.editFlag)
            {
                <td>@Html.TextBoxFor(modelItem => item.InputName)</td>
            }
            else
            {
                <td>@Html.DisplayFor(modelItem => item.InputName)</td>
            }  
        }

. 同じモデルを AJAX CALL 用に保存したいが、変更があった場合は修正したい

そして私のajax呼び出し:

      $("#editButton").click(function () {
       $.ajax({
             type: "POST",
                url: "@Url.Content("~/PhysicalInput/UpdatePhysicalInput")",
                data: { 
                    jsonData: @Html.Raw(Json.Encode(@Model));  
                },
                cache: false,
                success: function (html) 
                {
                    if (html.Success) 
                    {
                         window.location.href="ViewList?editFlag=false";
                    }
                    else { }
                },
                error: function(e) {  }
        });

ありがとう

4

1 に答える 1

0

元のモデルをサーバーに投稿するだけです。大きなモデルがない場合は、データ行を次のように変更する必要があります。

data: { field1: $('.field1').val(), field2: $('.field2').val(), etc }

これにより、これらのフィールドの現在の値がアクションに返されます。Url.Content を次のように置き換えることができます。

@Url.Action(Action, Controller) 

またはあなたの場合:

@Url.Action("UpdatePhysicalInput", "PhysicalInput")

書くのが少しきれいになり、追加のパラメーターを追加するのがずっと簡単になります。

于 2013-09-30T19:54:22.223 に答える