Ошибка отображения частичного представления - PullRequest
0 голосов
/ 05 февраля 2011

Я создал раскрывающийся список в частичном представлении, и я пытаюсь сделать это на моей странице aspx Я получаю сообщение об ошибке:

{"Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'."}

Это моя страница aspx, где я использую элемент управления ascx:

<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();
}

Почему я получаю эту ошибку и как ее исправить?

1 Ответ

1 голос
/ 05 февраля 2011

Трудно помочь, не видя всей трассировки стека исключений.Вот несколько советов:

  • Убедитесь, что ваш частичный 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--") %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...