0

我的 Jquery Ajax 调用。如何将模型从动作返回到 ajax 并传递给另一个动作。

    function ChangeName(id)
        {
        var name=$("#name").val();
          $.ajax({
                   cache:false,
                   url: "@Url.Action("EditName", "Order")",
                   data: "Name=" +name+"&Id="+id ,
                   type: "POST",
                   success: function (data) {
                     window.location.href=data.Url;//doesnt work passes null model

                                             }
                                             });
        }


    public ActionResult EditName(string name,int id)
    {
        var product= GetProduct(id);
        product.Name=name;
        UpdateProduct(product);

        var model=new ProdModel(){id=id};
        return Json(new
        {
            Url = Url.Action("Test","Order",new{model=model})
        },JsonRequestBehavior.AllowGet);
    }



 public ActionResult Test(ProdModel model)//Model null
        {

           return RedirectToAction("List", "Product");
        }

我已经尝试过了,但没有成功。

4

2 回答 2

0

尝试如下

Edit Action尝试返回模型而不是 url,

    public josnResult EditName(string name,int id)
{
    var product= GetProduct(id);
    product.Name=name;
    UpdateProduct(product);

    var model=new ProdModel(){id=id};
    return Json(model,JsonRequestBehavior.AllowGet);
}

然后在 ajax Success 调用中,您可以再次调用Test Action

  $.ajax({
           cache:false,
           url: '@Url.Action("EditName", "Order")',
           data: JSON.stringify(params),
           type: "POST",
           success: function (data) {
             CallTestAction(data);
           }
   });
var CallTestAction = 函数(数据){
      $.ajax({
               缓存:假,
               url: '@Url.Action("Test", "Order")',
               数据:{模型=数据},
               类型:“发布”,
               成功:函数(数据){
               }
       });
};
于 2013-08-20T14:37:13.063 回答
0

尝试这个

function ChangeName(id)
    {
    var name=$("#name").val();
    var params = {
        Name: name,
        Id: id
    };
      $.ajax({
               cache:false,
               url: '@Url.Action("EditName", "Order")',
               data: JSON.stringify(params),
               type: "POST",
               success: function (data) {
                 window.location.href=data.Url;//doesnt work passes null model
               }
       });
    }


[HttpPost]
public ActionResult EditName(string name,int id)
{
    var product= GetProduct(id);
    product.Name=name;
    UpdateProduct(product);

    var model=new ProdModel(){id=id};
    return Json(new
    {
        Url = Url.Action("Test","Order",new{model=product})
    },JsonRequestBehavior.AllowGet);
}
于 2013-08-20T11:38:14.570 回答