Html.CanvasActionLink генерирует POST? - PullRequest
0 голосов
/ 16 февраля 2011

У меня есть два метода в моем контроллере:

public ActionResult MyMethod()
{
}


[HttpPost]
public ActionResult MyMethod()
{
}

И в представлении:

Html.CanvasActionLink("Link", "MyMethod")

Когда я нажимаю на ссылку, всегда вызывается второй метод, он выполняет POST?

Ответы [ 2 ]

1 голос
/ 05 марта 2011

В настройках приложения на Facebook вы должны отключить настройку «Опубликовать на холсте»

0 голосов
/ 16 февраля 2011

Вы не можете иметь эти два метода на одном контроллере, потому что ваш код просто не будет компилироваться. Запрещено иметь два метода с одинаковым именем и одинаковыми параметрами в одном классе. Вы, вероятно, имеете:

public ActionResult MyMethod()
{
}

[HttpPost]
public ActionResult MyMethod(SomeViewModel model)
{
}

Таким образом, в зависимости от того, какой HTTP-глагол используется в запросе, вызывающий действие выберет первый или второй метод. GET-запрос отправляется первому, POST-запрос отправляется второму.

Мне не известен метод расширения CanvasActionLink (это не стандартный ASP.NET MVC), но если вызывается второе действие, это означает, что оно использует POST (либо через JavaScript AJAX, либо через элемент HTML <form>) .

Вы можете использовать FireBug , чтобы точно узнать, какие запросы отправляются между клиентом и сервером.

...