使用js将两个参数传递给另一个控制器

时间:2016-04-11 13:22:18

标签: javascript c# asp.net-mvc

这是一个将参数值传递给另一个控制器的按钮。它可以很好地将一个值传递给CarController,但是当我传递两个时,我看到它传递到车辆页面但CarController上的断点显示vin_num值已通过,但stock_num为null

传递一个参数,效果很好。      Vehicle.js

$(".button").click(function () {
    $.ajax({
        type: "POST",
        contentType: 'application/json; charset=utf-8',
        url: "/Cars/setD",
        data: JSON.stringify({ vin_num: this.id }),
        success: function (result) {
            window.location.href = '/Cars/Index';
        }
    });
});

CarController.cs

public JsonResult setD(string vin_num)
{
    Session["vin_num"] = vin_num;
    return Json(true, JsonRequestBehavior.AllowGet);
}

我尝试过,传递两个值。

$(".button").click(function () {
    $.ajax({
        type: "POST",
        contentType: 'application/json; charset=utf-8',
        url: "/Cars/setD",
        data: JSON.stringify({ vin_num: this.id, stock_num: this.id2 }),
        success: function (result) {
            window.location.href = '/Cars/Index';
        }
    });
});

CarController.cs

public JsonResult setD(string vin_num, string stock_num)
{
    Session["vin_num"] = vin_num;
    Session["stock_num"] = stock_num;
    return Json(true, JsonRequestBehavior.AllowGet);
}

2 个答案:

答案 0 :(得分:0)

您可以使用Route属性:

[Route("api/car/{param}/{paramTwo}")]
public JsonResult GetSomething(int param, int paramTwo) {
}

您可以在以下链接中找到有关属性路由的更多信息

http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2

答案 1 :(得分:0)

为对象创建一个类,然后传递该对象:

public class Stock
{
   string vin_num { get; set; };
   string stock_num { get; set; };
}
控制器中的

public JsonResult setD(Stock stock)
{

并使用它:

data: JSON.stringify(stock:{ vin_num: this.id, stock_num: this.id2 }),

可替换地:

var mydata= {stock { vin_num: this.id, stock_num: this.id2 }};
...
data: JSON.stringify(mydata),