Почему я не могу вызывать Model и ViewData и Html на строго типизированной странице?

Я создал новый строго типизированный вид, что-то вроде этого:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" 
  Inherits="System.Web.Mvc.ViewPage<MiniMain.ViewModel.ArticleViewdata>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    <%Model %>
</asp:Content>

но когда я назвал Mode, Html, Viewdata, у меня не было подсказок intellisense. Я не могу понять, пожалуйста, скажите мне, как это сделать?


person user196424    schedule 12.11.2009    source источник


Ответы (3)


Я понял это. Если вы создаете сильно типизированное представление, вы должны добавить эту конфигурацию в web.config под путем просмотра:

<pages
    validateRequest="false"
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <controls>
    <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
  </controls>
</pages> 
person user196424    schedule 13.11.2009

См. эту статью о ViewModels.

Вам нужно сделать какое-то альтернативное кодирование в asp:content вместо того, чтобы просто вызывать <% model %> и надеяться, что intellisense сработает — вы сказали странице, что такое «модель», поэтому все, что вам нужно сделать, это начать «использовать» модель на страница.

В этом примере из статьи Стивенса выполните итерацию каждого элемента в модели и создайте список.

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">  
    <% foreach (var item in Model)    
       { %>  
        <li> <%= item.Name %> </li>  
    <% } %>  
</asp:Content> 
person jpg    schedule 12.11.2009
comment
но это говорит мне, что модель не вышла в текущем контексте. - person user196424; 13.11.2009

Попробуйте использовать ‹%= Model.blah %> вместо ‹% Model.blah %>

person Jeremy    schedule 13.11.2009