繁体   English   中英

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

[英]Child action/partial view is not being rendered when called in asp.net mvc 2 application

我确定它很小(或可能很大),但是我的子操作无效。 我有一个用年份值填充列表的子操作。 该列表将通过部分控件显示。 当我单步执行代码时,我看到了各自执行的代码,但是页面上没有任何内容。

儿童动作:

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

您正在调用子操作,但不执行任何操作以将其呈现到输出中:

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

应该变成:

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

或者,如果您喜欢:

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

以及对可能感兴趣的人的Razor等效产品:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM