Asp.net mvc 局部视图显示错误

Asp.net mvc 局部视图显示错误,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,我在局部视图中创建了一个下拉列表,并试图在我的aspx页面上呈现该列表。我得到一个错误: {“执行处理程序'System.Web.Mvc.HttpHandlerUtil+serverexecutehttphandlerasyncwraper'的子请求时出错”。} 这是我使用ascx控件的aspx页面: <td> <% Html.RenderAction("getFilterdData");%> </td> 为什么会出现此错误以及如何修复它?如果不查看

我在局部视图中创建了一个下拉列表,并试图在我的aspx页面上呈现该列表。我得到一个错误:

{“执行处理程序'System.Web.Mvc.HttpHandlerUtil+serverexecutehttphandlerasyncwraper'的子请求时出错”。}

这是我使用ascx控件的aspx页面:

<td>
    <% Html.RenderAction("getFilterdData");%>
</td>

为什么会出现此错误以及如何修复它?

如果不查看整个异常堆栈跟踪,很难提供帮助。以下是一些提示:

  • 确保您的部分
    Inherits=“System.Web.Mvc.ViewUserControl”
    而不是
    Inherits=“System.Web.Mvc.ViewPage”
    。您使用的是ASCX部分,继承自
    System.Web.Mvc.ViewPage
    ,这是错误的
  • 确保调用的局部视图与控制器操作完全相同:
    getFilterdData.ascx
    (我在这里看到输入错误)
  • 确保
    Assist
    类包含一个名为
    Assist\u 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
):

看看这里
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();
    }
}
<% Html.RenderAction("GetFilteredData"); %>
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Assist>>" %>
<%= Html.DropDownList("Assists", (SelectList)ViewData["Assists"], "--Select One--") %>