Actionlink для дочерних действий - PullRequest
3 голосов
/ 15 января 2012

Я вызвал представление из другого метода Html.Action.Я хочу вызвать то же действие с параметром Внутри дочернего представления, когда пользователь щелкает ссылку действия.

Когда я пишу этот код, я получаю следующее сообщение об ошибке:

Html.ActionLink("link", "Configure", new { id = 2 })

Действие «Настроить» доступно только по дочернему запросу.

Как я могу решить эту проблему?

Редактировать: Я попытаюсь объяснить причину:

мое родительское представление - ConfigureMethod.cshtml.Я называю дочерний дочерний вид следующим образом:

@Html.Action("Configure", "Payment");

Он идет к этому контроллеру и возвращает actionresult (не частичное представление) в представлении ConfigureMethod:

[ChildActionOnly]
public ActionResult Configure()
{

}

в представлении конфигурации я создаю ссылку действиявот так:

Html.ActionLink("link", "Configure", new { id = x.Id })

Это должно идти к этому контроллеру:

[ChildActionOnly]
public ActionResult Configure(int Id)
{

}

Однако, когда атрибут childonly записан, он выдает ошибку.Когда я удаляю этот атрибут, он работает, но результаты приходят напрямую, а не в представлении ConfigureMethod.

спасибо.

1 Ответ

8 голосов
/ 15 января 2012

Я хотел бы отметить две вещи,

  1. Дочерние действия должны отображаться только как PartialView. Таким образом, добавление атрибута [ChildActionOnly] означает, что это действие должно вернуть PartialViewResult.

  2. Когда мы вызываем ActionLink (), он генерирует ссылку на просмотр, а не частичный просмотр. Даже если вы не будете украшать [ChildActionOnly], ссылка на частичное представление не имеет смысла.

Итак, сначала решите, хотите ли вы View или Partial View, а затем спроектируйте соответственно.

...