MVC 5视图在VS2013中的Razor语法错误

4
我有以下问题:
Razor语法在视图中显示错误,并且在大多数情况下无法自动完成,例如:
@model someModel // The name 'model' does not exist in the current context

@Html.EditorFor(m=>m.SomeProp) // System.Web.WebPages.Html.HtmlHelper does not contain a defenition for 'EditorFor'.... same for .Partial and  .OtherExtensions

//This do work:
@Html.CheckBox //.DropDown .Encode .Hidden ect... (The non extended properties of html)

根据类似的SO主题,我尝试了以下方法:

  1. 确保在主目录和Views目录中的web.config上使用相同的网页/mvc版本。

  2. 卸载项目,删除.user文件,重新加载项目(虽然这个方法只有一次有效)

  3. 重建/清理/删除bin文件

这让我感到非常疯狂,请帮忙!

附加:使用Webpages 3.0.3XXX和MVC 5.2.3XXX

附加#2:似乎是因为Views目录被分离到另一个项目中导致的 - 不要这样做!在同一个项目中使用与您的mvc控制器相同的视图。


1
你是否从旧版本升级到了MVC 5?如果是的话,全面搜索先前版本号(例如System.Web.Mvc 4.0.0.0)会有所帮助。我认为我已经检查了每个.config文件,但还有一些残留的东西。 - Hari Hara Chandan
谢谢,我已经搜索了整个web.system.mvc和webpages的解决方案,它们都是5.2.3.0和3.0.0版本,我没有从4升级,这是一个新的MVC5项目。 - Ziv Weissman
@User3250 谢谢您的建议,是的,我已经尝试使用了。 - Ziv Weissman
@User3250 是的,我放弃了这个问题,我认为我知道原因,但不知道解决方法——这是由于在另一个项目中分离了MVC控制器和视图。 - Ziv Weissman
我没有意识到这已经一年了 :) - ps2goat
显示剩余3条评论
1个回答

0

MVC 架构总是在以下文件夹中查找视图

~/Views/ControllerName/ActionName.[cshtml|vbhtml|aspx|ascx]

或者

~/Views/Shared/ActionName.[cshtml|vbhtml|aspx|ascx]

其次,你可以根据this文章的说明指定查找的位置。虽然我从未尝试过。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接