我有一个过于奇怪的问题。
我正在开发一个项目,它正在转换为使用asp.net MVC。
一切都适用于控制器/模型/视图。我在控制器中可以获得每个关键字(ViewBag,ViewContext等)。
然而,在我的观点中,我只获得了一些帮助(例如@Model,@ Html),但是我错过了其他人(@ model,@ ViewBag,@ ViewContext等)
这是一个巨大的障碍(我发布代码,但我不知道哪些代码真正相关)。我的web.config是100%死的,我所有的其他MVC项目都没有这个问题。
我已经清理了项目/重新映射了它等等。其他机器上的其他机器没有这个问题,但奇怪的是我(我完全重新检查了项目)。
就像我说的,我不知道什么代码是相关的我只是希望别人有一个想法可能是错的。我很困惑,因为web.config是正确的,我没有错过任何引用(我的所有引用都指向正确的位置),我可以在控制器中使用它们。
仅仅因为我不想被大吼大叫,这里是我在视图/文件夹中的web.config的摘录
<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, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, 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>
我遇到的最奇怪的问题之一:O
示例:
@model Project.WebUI.Models.MyModel
@{
ViewBag.title = "hi";
}
<div>@Model.someItemInTheModel</div>
模型带有红色下划线'在当前上下文中不存在'
@model Project.WebUI.Models.MyModel
ViewBag带有红色下划线'在当前上下文中不存在'
ViewBag.title = "hi";
此行完全正常
<div>@Model.someItemInTheModel</div>
控制器,这一切都很好
public ActionResult MyView(long date)
{
MyModel model = new MyModel();
model.someItemInTheModel = "hi";
return PartialView(model);
}
答案 0 :(得分:0)
创建一个新的MVC3项目,并将这些web.config文件与项目中的文件进行比较。您需要在项目根目录(/web.config
)和/Views/web.config
中进行检查。
同时检查以确保您拥有所有相同的System.Web.*
引用。