Контроллер MVC3 не получает значения параметров - PullRequest
2 голосов
/ 08 января 2012

Используя 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 ]

1 голос
/ 08 января 2012

Я только что сделал «Файл -> Новый проект» и просто добавил один контроллер и попробовал напрямую, используя:

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 или что-то подобное и убедиться, что вы действительно отправляете значения на сервер.

1 голос
/ 08 января 2012
$.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);
                }
            });

Попробуйте так.

1 голос
/ 08 января 2012

Если вы измените его на POST-запрос, он должен работать.

Однако похоже, что вы на самом деле пытаетесь просто «получить» данные с сервера, которые действительно должны быть закодированы в вашем URL, например. mysite.com/Customer/{customer_id}/Product/{product_id}. В этом случае вам, вероятно, потребуется изменить правила маршрутизации.

1 голос
/ 08 января 2012

MVC может ожидать строку JSON. Попробуйте использовать это как свои данные

data: JSON.stringify({ Customer: customerID, Product: productId})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...