Я уверен, что это что-то маленькое (или, может быть, большое), но мое детское действие не работает. У меня есть дочерняя операция, которая заполняет список значениями года. Этот список должен отображаться с помощью частичного контроля. Я вижу соответствующие фрагменты кода, выполняемые при его выполнении, но на странице ничего не отображается.
Child Action:
[ChildActionOnly]
public ActionResult GetYearList()
{
return PartialView(_FormService.getYears());
}
Вызов, используемый в родительском представлении:
<% using (Html.BeginForm()) {%>
<%= Html.ValidationSummary(true) %>
Select Year: <% Html.Action("GetYearList"); %>
Частичное Просмотр кода:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<SelectListItem>>" %>
<% if (Model != null)
{ %>
<% Html.DropDownList("Year", Model, "Select Year"); %>
<% } else { %>
<p> No Years Found </p>
<% } %>
Любая подсказка, что я делаю не так? Я мог бы просто визуализировать частичное представление напрямую, но я действительно пытаюсь понять, как работают ChildActions, поэтому я буду использовать их в будущем, если логика будет более сложной.
редактировать 1
Глупая семантика. Пришлось изменить частичное представление GetYearList на:
<%= Html.DropDownList("Year", Model, "Select 1099 Year") %>
вместо
<% Html.DropDownList("Year", Model, "Select Year"); %>
То же самое в родительском представлении, как сказал Дарин:
change Select Year: <% Html.Action("GetYearList"); %>
to <%= Html.Action("Get1099YearList") %>