#asp.net-mvc-3 #razor #ascx
#asp.net-mvc-3 #razor #ascx
Вопрос:
Я пытался добавить пользовательский элемент управления .ascx в мои EditorTemplates, но это приводит к появлению сотни ошибок в моем проекте MVC 3. Каждая ссылка на «System.» выдает ошибки как «не определено», и компилятор хочет, чтобы я обновил их до «Глобальных».System.«
Кто-нибудь может сказать мне, почему добавление пользовательского элемента управления приводит к этому?
Спасибо
Обновить:
Если я удалю файлы с кодом, которые создаются автоматически (и я не думаю, что мне это нужно), тогда проблемы, похоже, разрешатся. Очень интересно…
Ответ №1:
Пользовательские элементы управления (содержимое с runat="server"
) — это не то, что следует использовать в ASP.NET Приложение MVC. Обычно они полагаются на обратную передачу и ViewState, которые являются понятиями, которые больше не существуют в ASP.NET MVC. Вы могли бы использовать ascx
шаблон partial / editor и вызвать его из Razor view. Итак, например, давайте предположим, что у вас есть следующее частичное:
<%@ Control
Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<AppName.SomeViewModel>" %>
<%= Html.LabelFor(x => x.Foo) %>
<%= Html.TextBoxFor(x => x.Foo) %>
Вы могли бы включить его из Razor view следующим образом:
@Html.Partial("NameOfThePartial")
Комментарии:
1. Похоже, это корень проблемы. Я хотел шаблон редактора ascx, но добавлял в свой проект неправильную вещь.