2012-12-04 49 views
1

使用MVC 4:ASP.NET MVC:在Ajax更新中将Javascript值传递给Url.Action

我正在通过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); 
    }); 
} 

可以这样做吗?

回答

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 
    });