我在局部视图中创建了一个下拉列表,我试图在我的aspx页面上呈现它。我收到一个错误:
{"Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'."}
这是我使用ascx控件的aspx页面:
<td>
<% Html.RenderAction("getFilterdData");%>
</td>
我的ascx控件如下所示:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewPage<IEnumerable<assist>>" %>
<%=Html.DropDownList("Assists", (SelectList)ViewData["Assists"], "--Select One--")%>
我的控制器代码是这样的:
public ActionResult getFilterdData()
{
scorerep sc = new scorerep();
ViewData["Assists"] = new SelectList(sc.FilterData(), "assist_a","");
return View();
}
为什么我会收到此错误以及如何解决?
答案 0 :(得分:1)
如果没有看到整个异常堆栈跟踪,很难提供帮助。以下是一些提示:
Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<assist>>"
而非Inherits="System.Web.Mvc.ViewPage<IEnumerable<assist>>"
。您正在使用ASCX部分并继承System.Web.Mvc.ViewPage
这是错误的。getFilterdData.ascx
(我在此处看到错字)Assist
类包含名为assist_a
的属性,因为这是您在呈现下拉列表时使用的属性getFilterdData
控制器操作中没有异常被抛出。这是一个有效的例子:
型号:
public class Assist
{
public string Id { get; set; }
public string Value { get; set; }
}
控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult GetFilteredData()
{
// TODO: replace with your repository logic
ViewData["Assists"] = new SelectList(new[] {
new Assist { Id = "1", Value = "Assist 1" },
new Assist { Id = "2", Value = "Assist 2" },
new Assist { Id = "3", Value = "Assist 3" },
}, "Id", "Value");
return View();
}
}
查看(~/Views/Home/Index.aspx
):
<% Html.RenderAction("GetFilteredData"); %>
部分:(~/Views/Home/GetFilteredData.ascx
):
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Assist>>" %>
<%= Html.DropDownList("Assists", (SelectList)ViewData["Assists"], "--Select One--") %>