5

我将其添加到我的标题<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>,并且能够访问ViewData及其所有内部以及所有mvc对象,如url和html。只要我添加“System.Web.Mvc.ViewPage<app.Models.tTable>”,我就无法访问任何mvc类和辅助方法。我很困惑这是为什么。我最近从mvc preview 5升级到了rc1,但是我向rc1的过渡是完美的,没有任何错误或错误。mvc没有代码隐藏强类型viewdata标题不工作

回答

6

在我找到答案后,我找到了答案,这是因为我没有阅读官方发布说明,而是通过博客中的一篇教程进行了阅读,但是为了实现这个目标,您需要将<pages>节点与

<!-- 
     Enabling request validation in view pages would cause validation to occur 
     after the input has already been processed by the controller. By default 
     MVC performs request validation before a controller processes the input. 
     To change this behavior apply the ValidateInputAttribute to a 
     controller or action. 
    --> 
    <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> 

在你的“/查看”目录下的web.config文件我加了注释从预建web.config文件

+0

这仅仅是作为适用于MVC 2为1.虽然版本&公钥改变为2.0版特定.... \t \t <页面 \t \t \t validateRequest = “假” \t \t \t pageParserFilterType = “System.Web.Mvc.ViewTypeParserFilter” \t \t \t pageBaseType = “System.Web.Mvc.ViewPage” \t \t \t userControlBaseType = “System.Web.Mvc.ViewUserControl”> \t \t \t \t \t \t \t <添加组​​件= “System.Web.Mvc,版本= 2.0.0.0,文化=中性公钥= 31BF3856AD364E35”命名空间= “System.Web.Mvc” 的TagPrefix = “MVC”/> \t \t \t \t \t – EBarr 2010-03-16 15:58:45

3

有一个窍门。/Views文件夹下有一个web.config。哇,我没看到。

感谢张贴