MVC2 C # - Почему я не могу назначить Model.ImageUrl атрибуту img src в UserControl? - PullRequest
1 голос
/ 30 сентября 2010

Я начинаю с MVC 2 в Visual Studio 2010. Дело в том, что я работаю с MasterPage, где я рендеринг действия, которое возвращает UserControl: Все работает хорошо, я имею в виду, что пользовательский элемент управления имеет много других меток и отображает другие свойства ... Так что проблема не имеет ничего общего с тегом img и атрибутом src:

Site.Master:

<div class="Test">
     <% Html.RenderAction("HeaderDetails", "User"); %>
</div>

HeaderDetails.ascx:

<img src="<%= Model.ImageUrl %>" />

К моему удивлению, я не могу использовать модель внутри этого атрибута в пользовательском контроле, у меня то же самое для работающего Page.aspx.

То же самое происходит с ViewData ["ImageUrl"], я просто не имею даже intellicense в этом атрибуте. Это как: я не могу этого сделать.

Кто-нибудь знает, почему это? Или как мне это сделать?

Ответы [ 2 ]

1 голос
/ 05 октября 2010

Что ж, я решил эту проблему, создав пользовательский HtmlHelper, используя методы расширения, пройдя по этой ссылке.

Единственное, что я не мог использовать пространство имен MyMVCApp.Helpers, мне пришлось использовать System.Web.MVC, поэтому я не уверен, что это будет лучшим способом сделать это.

Если у вас есть какие-то комментарии по этому поводу, я буду признателен.


Итак, я пропустил Импорт в MyMVCApp.Helpers внутри пользовательского элемента управления: D

1 голос
/ 30 сентября 2010

Я вроде как заблудился к концу вашего вопроса, но что касается строго типизированной Модели в пользовательском элементе управления, вам потребуется, чтобы ваша страница, мастер-страница и пользовательский элемент управления все наследовали с одинаковыми аргументами типа

страница:

<%@ Page Language="C#" MasterPageFile="Your.Master" Inherits="System.Web.Mvc.ViewPage<YourModelType>" %>

master:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<YourModelType>" %>

control:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<YourModelType>" %>

Тип arg элемента управления и master может быть базовым типом YourModelType, но, очевидно, потребуется свойство ImageUrl

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...