我开始使用“MVC 3”,但我面临一些小问题.在我的意见中,当我编写如下代码:
@if(Request.IsAuthenticated) { <text>Welcome <b>@Context.User.Identity.Name</b>! [ @Html.ActionLink("Log Off","logoff","Account") ]</text> } else { @:[ @Html.ActionLink("Log On","logon","Account") ] }
像@Request和@Html这样的对象表示错误:当前上下文中不存在名称“HTML”.
@Context,@ViewBag,@Layout,@Url等也是一样.
看到:
image http://i56.tinypic.com/28s1smp.jpg
但代码正确编译没有错误.问题是我不能在视图中使用Intellisense与这些对象.是正常吗(我不这么认为).可能会发生什么?
我已经重新安装了MVC 3框架,但仍然发生.
注意:这是一个从头开始的新项目,而不是MVC 2迁移.这与Razor引擎和ASPX都发生.
这是Views文件夹中的Web.Config:
<?xml version="1.0"?> <configuration> <configSections> <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup,System.Web.WebPages.Razor,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"> <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection,PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection,PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> </sectionGroup> </configSections> <system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory,System.Web.Mvc,Version=3.0.0.0,PublicKeyToken=31BF3856AD364E35" /> <pages pageBaseType="System.Web.Mvc.WebViewPage"> <namespaces> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Routing" /> </namespaces> </pages> </system.web.webPages.razor> <appSettings> <add key="webpages:Enabled" value="false" /> </appSettings> <system.web> <httpHandlers> <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/> </httpHandlers> <!-- 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,PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage,PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl,PublicKeyToken=31BF3856AD364E35"> <controls> <add assembly="System.Web.Mvc,PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> </controls> </pages> </system.web> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <handlers> <remove name="BlockViewHandler"/> <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> </handlers> </system.webServer> </configuration>
谢谢!