Можете ли вы вызвать метод из контроллера, если представление было создано из другого контроллера? - PullRequest
0 голосов
/ 24 июня 2009

Скажем, я вызвал Index () из HomeController, который возвращает представление Index.aspx, может ли jquery ajax в javascript на Index.aspx вызвать метод в другом контроллере (ExternalController)?

$.ajax({
            type: "POST",
            url: "/Home/sayHi",
            dataType: "json",
            data:({ currRow : centerPost[0], offset : ((-1 * Math.ceil(numRows / 2)) + 1) }),
            error:function(request){alert(request.statusText)},
            success:function(result){alert(result)}
        }).responseText;

не дал мне ошибки, страница была обработана из HomeController

$.ajax({
            type: "POST",
            url: "/Row/getRowName",
            dataType: "json",
            data:({ currRow : centerPost[0], offset : ((-1 * Math.ceil(numRows / 2)) + 1) }),
            error:function(request){alert(request.statusText)},
            success:function(result){alert(result)}
        }).responseText;

дал мне внутреннюю ошибку сервера ...

просто интересно, может ли это быть, потому что я вызываю контроллер, отличный от того, который был обработан с

1 Ответ

2 голосов
/ 24 июня 2009

Не должно быть никаких причин, по которым вызов контроллера, отличного от того, который отображал ваше текущее представление, мог привести к любым ошибкам. Контроллер - это просто обработчик общего набора команд. Независимо от того, были ли эти команды введены адресной строкой браузера, гиперссылкой или вызовом jQuery ajax. Все три используют один и тот же протокол для выдачи команд контроллеру.

Я предполагаю, что в вашем коде что-то не так, что вызывает внутреннюю ошибку сервера. Вы пытались зайти в / Row / getRowName прямо в браузере, чтобы увидеть, что происходит? Работает ли это с GET и POST, только с POST, только с GET? Возможно, вы выдаете POST, когда поддерживается только GET? Мне нужно больше информации, прежде чем я смогу помочь вам в дальнейшем.

...