我已经看到一些人使用HTML.BeginForm语法的例子:
(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
答案 0 :(得分:11)
您可以在MVCContrib中找到此扩展程序,更具体地说,可以在Microsoft.Web.Mvc.dll
类中的Microsoft.Web.Mvc.FormExtensions
程序集中找到此扩展程序。因此,请下载并在项目中包含此程序集,并在web.config文件的Microsoft.Web.Mvc
部分中添加namespaces
名称空间:
<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>
您可以在自己的观看中使用它。
答案 1 :(得分:-1)
以下是您的.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) %>
...
<% } %>
希望有所帮助。