Я читал о дочерних действиях в MVC (фундаментальная книга), но я действительно не знаю, что это такое?
Может кто-нибудь объяснить эти методы?
Я читал о дочерних действиях в MVC (фундаментальная книга), но я действительно не знаю, что это такое?
Может кто-нибудь объяснить эти методы?
Фил Хаак хорошо объясняет это в этом сообщении в блоге. В основном дочернее действие - это действие контроллера, которое вы могли бы вызвать из представления с помощью помощника Html.Action
:
@Html.Action("SomeActionName", "SomeController")
Это действие затем выполнит и отобразит его вывод в указанном месте в представлении. Разница с Partial заключается в том, что частичная только включает указанную разметку, нет другого действия, выполняющего основное действие.
Таким образом, у вас есть основное действие, которое получило запрос и отобразило представление, но из этого представления вы можете выполнить несколько дочерних действий, которые пройдут через их независимый жизненный цикл MVC и, в конечном итоге, выведут результат. И все это произойдет в контексте одного HTTP-запроса.
Действия ребенка полезны для создания целых многократно используемых виджетов, которые могут быть встроены в ваши представления и которые проходят через их независимый жизненный цикл MVC.
Дочернее действие - это действие, которое вызывается с помощью html.renderaction или html.action helper изнутри представления.
Дочернее действие - это метод действия, который вызывается в представлении через @Html.Action().
Пример У меня есть действие на моем контроллере.
public DateTime Time(DateTime time)
{
return time;
}
Чтобы вызвать это действие из Вид, я буду использовать:
@Html.Action("Time", new { time = DateTime.Now })
Очки, которые следует отметить:
Дочерние методы действий не будут отвечать на запросы URL. Если будет предпринята попытка, будет сгенерирована ошибка времени выполнения: "Дочернее действие доступно только по дочернему запросу.
Дочерние методы действия могут быть вызваны путем создания дочернего запроса из представления с помощью помощников HTML "Action()" и "RenderAction()".
Метод действия не должен иметь атрибут [ChildActionOnly], который будет использоваться в качестве дочернего действия, но используйте этот атрибут, чтобы предотвратить, если вы хотите, чтобы метод действия не вызывался в результате запроса пользователя.
Дочерние действия обычно связаны с частичными представлениями, хотя это не является обязательным.
Дочерние методы действия отличаются от методов NonAction тем, что методы NonAction нельзя вызывать с помощью помощников Action() или RenderAction().
Используя дочерние методы действий, можно кэшировать части представления. Это главное преимущество методов дочерних действий.