代码之家  ›  专栏  ›  技术社区  ›  itchi

如何创建强类型BeginInform?

  •  3
  • itchi  · 技术社区  · 15 年前

    我见过一些人使用这种HTML.BeginInform语法的例子:

    (Html.BeginForm<Type>(action => action.ActionName(id)))
    

    但是当我尝试这个语法时,我得到的只是一个:

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

    我错过了什么? Visual Studio 2010 system.web.mvc版本为v2.0.50727

    2 回复  |  直到 15 年前
        1
  •  11
  •   Darin Dimitrov    15 年前

    您将在中找到此扩展方法 MVCContrib 更具体地说, Microsoft.Web.Mvc.dll 装配在 Microsoft.Web.Mvc.FormExtensions 班级。因此,下载并将此程序集包含在项目中,然后添加 Microsoft.Web.Mvc 中的命名空间 namespaces web.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>
    

    你可以在你的视图中使用它。

        2
  •  -1
  •   GONeale    15 年前

    以下是.aspx视图中的一个示例:

    UserController “做你的管家。
    Save() “作为你在控制器中的操作方法。

    <%
    using (Html.BeginForm<UserController>(x => x.Save(null, null, Model.User.ID, null, null), FormMethod.Post, new { id = "formUser" })) {
    %>
       <%= Html.AntiForgeryToken() %>
       <%: Html.ValidationSummary(true) %>
       ...
    <% } %>
    

    希望有帮助。