如何创建强类型的BeginForm?

itc*_*chi 3 asp.net-mvc asp.net-mvc-2

我已经看到一些人使用HTML.BeginForm语法的例子:

(Html.BeginForm<Type>(action => action.ActionName(id)))
Run Code Online (Sandbox Code Playgroud)

但是当我尝试这种语法时,我得到的是:

The non-generic method System.Web.Mvc.Html.FormExtensions.BeginForm(System.Web.Mvc.HtmlHelper)'
cannot be used with type arguments
Run Code Online (Sandbox Code Playgroud)

我错过了什么?Visual Studio 2010,System.Web.MVC版本为v2.0.50727

Dar*_*rov 11

您将在MVCContrib中找到此扩展方法,更具体地说,Microsoft.Web.Mvc.dllMicrosoft.Web.Mvc.FormExtensions类中的程序集中.因此,下载并在项目中包含此程序集,并Microsoft.Web.Mvcnamespacesweb.config文件的部分中添加名称空间:

<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="System.Linq"/>
    <add namespace="System.Collections.Generic"/>
    <add namespace="Microsoft.Web.Mvc"/>
</namespaces>
Run Code Online (Sandbox Code Playgroud)

并且您将能够在您的视图中使用它.