使用jquery post将模型从MVC发布到action

时间:2015-01-22 14:30:11

标签: jquery json asp.net-mvc-4

我试图使用jquery post将我的模型发布到MVC Action。在MVC中,我执行以下操作将我的模型序列化为JSON:

MVC:

<div class="myModel" hidden="true">@Html.Raw(Json.Encode(Model))</div>

使用Javascript:

$(".confirm_yes").click(function (e) {
    e.preventDefault();

    // Get credit card session id
    var sessionid = $(this).parent().find(".payu_creditcard_sessionid").text();

    var myModel = $(".myModel").text();
    $.post("/payuwalletlink/removecreditcard", { model: myModel }, function (data) {

        //do whatever with the returned view.

    });
});

控制器

[HttpPost]
public ActionResult RemoveCreditCard(CreditCardModel model)
{

    return View("PayUwallet");
}

但是我的浏览器出现以下错误:

  

无法加载资源:服务器响应状态为500(内部服务器错误)

1 个答案:

答案 0 :(得分:2)

你似乎在做什么是没有意义的。为什么要将模型传递给视图然后将其完全不变地发布?但是,如果需要,这样做的方法是将模型转换为javascript对象并将其发回

var myModel = JSON.parse('@Html.Raw(Json.Encode(Model))');

$(".confirm_yes").click(function (e) {
  e.preventDefault();
  // Get credit card session id
  var sessionid = $(this).parent().find(".payu_creditcard_sessionid").text();     
  $.post('@Url.Action("removecreditcard", "payuwalletlink")', myModel , function (data) {
    ....
  });
});

不确定var sessionid = ..的用途(您似乎无法使用它)。

我怀疑你试图删除post方法上的对象,在这种情况下,只需传回对象的ID