ASP.NET MVC с JQuery $ post и параметром - PullRequest
0 голосов
/ 05 марта 2010

Что не так с этим кодом. Код находит javascript и debug1, как показано. Если я удаляю параметр p, код также находит действие mycontrol и показывается debug2.

Вид:

function method(p) {
    alert("debug1");
    $.post('../MyController/MyAction/' + p, function() {
        alert("debug2");
        $('#panel').empty().html('<img src="../Content/images/ajax-loader.gif" / >');
        $('#panel').load('../Controller/Index');
    });
}

Контроллер:

    public ActionResult MyAction(int p)
    {
       // Some code

        return null;
    }

Ответы [ 3 ]

2 голосов
/ 05 марта 2010

Мне кажется, у тебя проблемы с маршрутами.Вы не можете изменить имя вашего параметра, если вы не изменили свои маршруты.Маршрут, который будет работать для вашего сценария:

routes.MapRoute("MyRoute",
            "MyController/MyAction/{p}",
            new { controller = "MyController", action = "MyAction", p = "" }
            );
1 голос
/ 10 сентября 2010

Просто измените это так:

$.post('../MyController/MyAction/p=' + p, function() {
0 голосов
/ 05 марта 2010

Эта функция является обратным вызовом и будет вызываться независимо от успеха или неудачи. Если вы вызываете веб-сервис, попробуйте включить свойство success = true / false в свой результат. Таким образом, вы можете сделать следующее

`$.post('../MyController/MyAction/' + p, function(result) {
    if (!result.success) return;

    alert("debug2");
    $('#panel').empty().html('<img src="../Content/images/ajax-loader.gif" / >');
    $('#panel').load('../Controller/Index');
});`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...