Вызов Html.RenderPartial("~/Views/Payments/MyControl.ascx");
из представления работает, если MyControl.ascx является элементом управления, который непосредственно наследует System.Web.Mvc.ViewUserControl
.Оказание производного частичного представления с помощью Html.RenderPartial
Однако, если элемент управления наследует новый класс, производный от System.Web.Mvc.ViewUserControl
, вызов Html.RenderPartial("~/Views/Payments/MyDerivedControl.ascx");
сбоит, сообщая, что такой вид не существует.
Пример получен System.Web.Mvc.ViewUserControl
:
class MyDerivedControl : System.Web.Mvc.ViewUserControl
{
public Method()
{
ViewData["SomeData"] = "test";
}
}
Есть обходной путь, или есть другой способ, я должен делать это? Возможно, помощник HTML?
мнение не предоставляет данные; мой вопрос в том, что передача данных передается в ** полученное ** частичное представление и результирующая ошибка при попытке отобразить его после интерпретации (по производному классу ViewUserControl). Откуда взялись данные, не имеет значения. –
@FreshCode, я понятия не имею, почему это конкретное исключение происходит. Все, что я могу вам сказать, это то, что представления не должны наследоваться так, как вы пытаетесь использовать приложение MVC. Представления предназначены только для отображения данных, поступающих с контроллера. Существуют такие методы, как «Мастер-страницы», «Частичные представления», «Помощники HTML», которые позволяют создавать и повторно использовать функциональность в «Представлениях». В шаблоне проекта ASP.NET MVC по умолчанию, сгенерированном VS, нет даже файла '.cs', связанного с вашими элементами' ascx'. –