Почему почтовый код запускается при загрузке jQuery? - PullRequest
1 голос
/ 13 января 2010

У меня в процедурном контроллере есть следующие функции:

Function Add(ByVal bpid As Integer) As ActionResult
    Return View(GetAvailableProcedures(bpid))
End Function

<AcceptVerbs(HttpVerbs.Post)> _
Function Add(ByVal bpid As Integer, ByVal code As String, ByVal covered As Boolean) As ActionResult
    AddProcedure(bpid, codes, covered)
    Return View("Close")
End Function

Я загружаю диалог добавления через jQuery так:

$("#dialog").load(
    "/Procedures/Add",
    { bpid: 123 },
    function(data) {
        alert(data);
    });

Это сбой, потому что он вызывает метод Post (где «покрытый» не может быть пустым) вместо Get. Я попытался украсить Get с помощью <AcceptVerbs(HttpVerbs.Get)>, но это не изменило результат.

Почему это вызывает Пост, и как мне заставить его использовать Get? Я понимаю, что могу изменить имена, чтобы они не были двусмысленными, но я хочу знать, почему он не выберет Get, если я только передаю bpid.

1 Ответ

3 голосов
/ 13 января 2010

Из справочника jQuery API для Ajax.load :

GET-запрос будет выполнен по умолчанию - но если вы передадите какие-либо дополнительные параметры в форме объекта / карты (пары ключ / значение), тогда будет выполнен POST Дополнительные параметры, передаваемые в виде строки, все равно будут использовать запрос GET.

Так что, я думаю, вы могли бы изменить его на что-то вроде:

$("#dialog").load(
    "/Procedures/Add",
    { "bpid" : "123" },
    function(data) {
        alert(data);
    }
);

HTHS,
Charles

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...