HtmlHelper不包含BeginForm

时间:2016-10-11 09:35:11

标签: c# asp.net-mvc razor

虽然我的代码编译并运行,但我受到小红色波浪线的困扰。例如,无法识别Html.BeginForm。虽然,如果我键入“Html”。然后intellisense会建议其他一些方法,如Checkbox和DropDownList。

其他下划线包括model和ViewBag。

我有一个对MVC 5.2.3.0的引用,System.Web.Mvc命名空间在我的web.config中

这已经持续了好几个月,并且浪费了我很多时间。我确定它与我安装的软件包版本有关,但我不太了解它能够对其进行故障排除。

我重建了我的计算机,重新安装了Visual Studio 2013,并将我的代码复制回来(以块为单位来尝试隔离问题)但我无法快速完成。

在切换职业之前,有谁可以帮我解决这个问题?

3 个答案:

答案 0 :(得分:1)

确保在BeginForm方法中同时具有控制器和动作方法的名称。

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

答案 1 :(得分:0)

包含与表单相关的扩展程序FormExtensions的类包含在System.Web.Mvc.Html命名空间(see MSDN)中,而不是System.Web.Mvc中。尝试在System.Web.Mvc.Html文件夹中添加Web.configViews,它应该可以正常运行。

答案 2 :(得分:0)

主要是你的配置问题。确保视图文件夹的 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> 

使用您的包装版本和命名空间