Дочернее действие / частичное представление не отображается при вызове в приложении asp.net mvc 2 - PullRequest
0 голосов
/ 22 ноября 2011

Я уверен, что это что-то маленькое (или, может быть, большое), но мое детское действие не работает. У меня есть дочерняя операция, которая заполняет список значениями года. Этот список должен отображаться с помощью частичного контроля. Я вижу соответствующие фрагменты кода, выполняемые при его выполнении, но на странице ничего не отображается.

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") %> 

1 Ответ

0 голосов
/ 22 ноября 2011

Вы вызываете дочернее действие, но ничего не делаете для его вывода на выход:

<% Html.Action("GetYearList"); %>

должно стать:

<%= Html.Action("GetYearList") %>

или, если вы предпочитаете:

<% Html.RenderAction("GetYearList"); %>

И их бритвенные эквиваленты для тех, кому это может быть интересно:

@Html.Action("GetYearList")
@{Html.RenderAction("GetYearList");}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...