在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") %>
您正在调用子操作,但没有做任何事情来将其呈现到输出:
<% Html.Action("GetYearList"); %>
应该成为:
<%= Html.Action("GetYearList") %>
或者
<% Html.RenderAction("GetYearList"); %>
和他们的Razor对等物,对于那些可能感兴趣的人:
@Html.Action("GetYearList")
@{Html.RenderAction("GetYearList");}