2016-10-11 126 views
2

尽管我的代码编译并运行,但我仍受到红色小波浪线的困扰。例如,Html.BeginForm不被识别。虽然,如果我输入“Html”。那么intellisense确实会提出一些其他方法,如Checkbox和DropDownList。HtmlHelper不包含BeginForm的定义

其他下划线包括模型和ViewBag。

我有一个参考MVC 5.2.3.0和System.Web.Mvc命名空间是在我的web.config

这已经持​​续了几个月,并浪费了我很多时间。我确定它与我已安装的软件包版本有关,但我无法理解它足以解决问题。

我已经重建了我的电脑,重新安装了Visual Studio 2013,并且复制了我的代码(以块为单位尝试隔离问题),但我无法快速完成任务。

任何人都可以帮助我在转换职业之前深入到底?

回答

0

包含与窗体相关的扩展的类FormExtensions包含在System.Web.Mvc.Html命名空间(see MSDN)中,而不是System.Web.Mvc。尝试在Views文件夹内添加System.Web.Mvc.HtmlWeb.config,它应该正常工作。

+0

感谢这个,kiziu。这是有用的知道。不幸的是,我不认为这是一个web.config问题(请参阅我上面的评论)。你还有其他建议吗?谢谢。 – lonelyoutpost

+0

Demonplus ...你有没有解决它。我有同样的问题..谢谢! – Diego

0

大部分是你的配置问题。确保您的查看文件夹氏t web.config中有配置是这样的:

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.1.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" /> 
     <add namespace="SixAnts" /> 
     </namespaces> 
    </pages> 
    </system.web.webPages.razor> 

使用packges的版本和命名空间

+0
+0

感谢CodeFarmer。我试图粘贴在我的web.config上面,但它没有工作得很好。无论如何,感谢信息,但我的web.config有这些命名空间。实际上,我暂时使用了一个新项目的默认配置文件,但问题仍然存在。任何想法可能是什么?谢谢。 – lonelyoutpost

+0

也许这是一个缓存问题,尝试忽略智能感知和错误,无论如何粘贴或写入。然后建立它看看是否有效。我的同事在几个月前创建的项目中遇到了同样的问题,我也找不到原因,所以我只是忽略它(不使用ofen),现在我检查它的问题已经消失(ps:也许涉及到代码编码类型或其他内容,因为它只出现在由特定同事创建的项目中,您也可以尝试删除该项目的文件夹“obj”下的所有文件,然后重新生成。) – Bucketcode