在beginform中使用链接而不是按钮

时间:2011-08-15 14:57:58

标签: .net asp.net html asp.net-mvc-2 html.beginform

如何使用链接而不是按钮在beginform中提交表单

这就是我所拥有的,但我不想使用按钮

           <% using (Html.BeginForm())
             { %>
             - <%: role %>
             <%: Html.Hidden("Username", user) %>
             <%: Html.Hidden("RoleToDelete", role) %>
             <button type="submit">X</button>
          <% } %> 

由于

3 个答案:

答案 0 :(得分:2)

在链接中添加一些javascript:

<a href="#" onclick="document.nameofyourform.submit();">X</a>

您需要一些识别表单的方法,以便您可以调用其相关对象的提交方法,以便您生成的html看起来像:

<form id="myform" name="nameofyourform" action="..." method="...">
...
</form>

ID会让您document.getElementById('myform'.submit(),名称将与上面的<a>示例一样。

当然,这完全取决于Javascript。如果你的目标是旧的/ js剥夺的浏览器,你能够提交表单的唯一方法是通过实际的提交按钮

答案 1 :(得分:1)

由于您正在使用MVC,我假设您也将使用JQuery:

<a href="#" onclick="$(this).parents('form').submit();" >Submit</a>

缺点:

    按回车键时
  • 不起作用(解决方法:保留提交按钮但将其放在屏幕外)

  • 在浏览器

    上禁用JS时,
  • 不起作用

答案 2 :(得分:0)

您需要先使用BeginForm命名表单,然后在链接的onclick事件中引用它。

<% using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { id = "deletionform" }))
{ %>
- <%: role %>
<%: Html.Hidden("Username", user) %>
<%: Html.Hidden("RoleToDelete", role) %>
<a onclick="deletionform.submit();">X</button>
<% } %>