1

使用 MVC 4:

我正在通过 ajax 更新一个 div。对 Url.Action 的调用需要从 html DOM 传递一个值,在本例中为 $('#ClientID').val()。我知道以下内容是非法的,但它表明了我的意图:

[script type="text/javascript"]
function UpdateTheDiv() {
    $.get('@Url.Action("MyAction", "MyController", 
        new {  
               parent = Model, 
               some_value_from_the_DOM=$('#SomeID').val() *** HERE IS THE PROBLEM ***
             })', 

        function (data) {
           $('#detailsDiv').replaceWith(data);
    }); 
}

这可以做到吗?

4

1 回答 1

5

您应该使用Url.Action无参数并在 JavaScript 中传递参数。服务器端处理无法访问客户端 DOM。

    $.ajax({
        url: "@Url.Action("MyAction", "MyController")",
        data: { 
                parent: @Html.Raw(Json.Encode(Model)),
                some_value_from_the_DOM: $('#SomeID').val()
        },
        success: function (result) {
            $("#detailsDiv").html(result); // update your div here
        },
        cache: false
    });
于 2012-12-04T18:20:20.510 回答