HtmlHelper不包含BeginForm的定义

本文关键字:定义 BeginForm 包含 HtmlHelper | 更新日期: 2023-09-27 18:12:24

虽然我的代码可以编译并运行,但我还是被一些小的红色弯弯曲曲的线条所困扰。例如,Html。BeginForm不被识别。虽然,如果我输入"Html.",那么智能感知会提示一些其他方法,如Checkbox和DropDownList。

其他下划线包括model和ViewBag。

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

这已经持续了好几个月了,浪费了我很多时间。我确信这与我所安装的软件包的版本有关,但我不太了解它,无法排除故障。

我已经重建了我的计算机,重新安装了Visual Studio 2013,并复制了我的代码(在块中试图隔离问题),但我无处可去。

在我转行之前,有谁能帮我弄清这件事的真相吗?

HtmlHelper不包含BeginForm的定义

确保在BeginForm方法中同时拥有控制器名和操作方法名。

@using (Html.BeginForm(ActionmethodName, ControllerName, FormMethod.Post))
{
}

主要是你的配置问题。确保您的Views文件夹位于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> 

使用包的版本和名称空间

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