在asp.net mvc 2应用程序中调用子操作/部分视图时没有呈现

本文关键字:视图 操作 mvc net asp 应用程序 调用 | 更新日期: 2023-09-27 18:15:37

我确定这是一个小的东西(或者可能是大的),但是我的子操作不工作。我有一个用年份值填充List的子操作。此列表将通过部分控件显示。当我遍历代码时,我看到各自的代码片段被执行,但页面上没有显示任何内容。

孩子行动:

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

父视图和Darin说的一样:

change  Select Year: <% Html.Action("GetYearList"); %>
to <%= Html.Action("Get1099YearList") %> 

在asp.net mvc 2应用程序中调用子操作/部分视图时没有呈现

您正在调用子操作,但没有做任何事情来将其呈现到输出:

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

应该成为:

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

或者

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

和他们的Razor对等物,对于那些可能感兴趣的人:

@Html.Action("GetYearList")
@{Html.RenderAction("GetYearList");}