MVC3控制器未接收任何参数值

时间:2012-01-08 03:29:10

标签: c# jquery asp.net-mvc-3

使用JQuery,我将值传递给控制器​​中的一个动作。 customerId和productId不为空:

$.ajax({
                type: "GET",
                url: "Customer/Product/",
                data: { Customer: customerID, Product: productId},
                dataType: "json",
                error: function (xhr, status, error) {
                    // you may need to handle me if the json is invalid
                    // this is the ajax object
                },
                success: function (json) {
                    $("#productName").innerHTML = json;
                    alert(json);
                    alert($("#startDate").innerHTML);
                }
            });

在MVC3控制器中,我有动作:

public ActionResult Product(string Customer, string Product)
{
//both are null
}

我不知道为什么两者都是空的?请指导

4 个答案:

答案 0 :(得分:1)

MVC可能期待一个JSON字符串。尝试将此作为您的数据

data: JSON.stringify({ Customer: customerID, Product: productId})

答案 1 :(得分:1)

$.ajax({
                type: "GET",
                url: "Customer/Product/",
                data:  "Customer="+customerID +"&Product="+productId,
                dataType: "json",
                error: function (xhr, status, error) {
                    // you may need to handle me if the json is invalid
                    // this is the ajax object
                },
                success: function (json) {
                    $("#productName").innerHTML = json;
                    alert(json);
                    alert($("#startDate").innerHTML);
                }
            });

试试这种方式。

答案 2 :(得分:1)

如果您将其更改为“POST”请求,它应该可以正常工作。

然而,看起来您实际上只是想从服务器“获取”数据,这些数据应该真正在您的网址中进行编码,例如mysite.com/Customer/{customer_id}/Product/{product_id}。在这种情况下,您可能需要更改路由规则。

答案 3 :(得分:1)

我刚刚做了“文件 - >新项目”,只是添加了一个控制器并尝试直接使用:

var customerID = 42;
var productId = 4242;
$.ajax({
        type: "GET",
        url: "http://localhost:51622/Customer/Product",
        data: { Customer: customerID, Product: productId},
        dataType: "json",
        error: function (xhr, status, error) {
            // you may need to handle me if the json is invalid
            // this is the ajax object
        },
        success: function (json) {
            console.log(json);
        }
    });

它可以很好地绑定值,因此您可能需要抓取fiddler或类似的东西,并确保您实际上正在向服务器发送值。