缺少htmlhelpers的汇编或引用

时间:2015-09-25 07:27:06

标签: c# asp.net-mvc

我有一个问题,VS(2015)抱怨我的.cshtml观点。

  

"名称'型号'在当前上下文中不存在"

@model Project.MyModel
  

'的HtmlHelper'不包含' TextBoxFor'的定义。没有扩展方法' TextBoxFor'接受第一个类型' HtmlHelper'可以找到(你错过了使用指令或程序集引用吗?)

 @Html.TextBoxFor(x => Model.Property)

我无法弄清楚为什么会这样。

我的观点/ Web.config

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

我的Web.config

pages>
  <namespaces>
    <add namespace="System.Web.Helpers"/>
    <add namespace="System.Web.Mvc"/>
    <add namespace="System.Web.Mvc.Ajax"/>
    <add namespace="System.Web.Mvc.Html"/>
    <add namespace="System.Web.Optimization"/>
    <add namespace="System.Web.Routing"/>
    <add namespace="System.Web.WebPages"/>
  </namespaces>
</pages>

有谁能看到我在这里失踪的东西?

编辑:它在VS 2013中运行良好..

2 个答案:

答案 0 :(得分:1)

我按照本指南操作,现在可以使用了。看起来我错过了一些版本升级......

http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2

查看packages.config并查看您拥有的Microsoft.Aso.Net.Mvc版本。然后在Views / Web.config中我将版本号更改为在这些地方的版本号(在我的情况下,我添加了Version = 5.2.3.0):

<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</system.web.webPages.razor>

<system.web>
<pages
    validateRequest="false"
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <controls>
    <add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
  </controls>
</pages>
</system.web>

我还从版本= 2.0.0.0升级了版本号 - &gt; Version = 3.0.0.0 here(Still Views / Web.config):

<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>

答案 1 :(得分:1)

在名为它的文件夹中的静态类中构建代码,例如帮助程序 enter image description here

然后 像这样

并将其添加到web.config中

add namespace =“ TheCompeleteApp.Helper”

如果它不起作用,请在使用这种扩展方法的视图中对其进行硬编码 @using FinalProject_0._1.Helper