ASP.NET MVC表单提交链接而不是按钮

我想有一个简单的登录表单(或任何forms),并能够发布它,而不是一个按钮,但有一个链接。

所以没有input ,但是。

我已经看到了很多针对这类问题的解决方案,我尝试了很多不同的选择,每次都没有任何反应。

我已经从我拥有的东西中删除了所有的JQuery,所以这就是“基础”情况:让它提交表单缺少什么?

   x.UserName)%>
x.Password)%>
Log In

实现这一目标的唯一方法是使用javascript:

 
Log In

并在JavaScript中:

 $(function() { $('a#submit_link').click(function() { $('form#fooForm').submit(); }); }); 

虽然我建议你使用提交按钮:

  

并尝试将其设计为锚点。 我的建议是始终使用提交按钮提交表单。 这在语义上更正确,您还会发现在编辑文本字段时按下Enter键之类的内容将提交一种原生的表单。 那么做什么是语义正确的并在CSS中做样式。

如果您想要使用链接而不是按钮的唯一原因是使其看起来不同(同时保留相同的function),为什么不只是将按钮设置为看起来像链接…

   

不幸的是,’hover’样式不适用于IE,但适用于Firefox。

我并不完全确信将提交按钮看作链接是一个好主意,但我确信我之前已经看过它。

您可以添加一个click处理程序来执行此操作:

 $(function() { $("#submit-link").click(function() { $("#loginForm").submit(); }); }); 

或者为了使其更具可重用性,请为链接指定一个类,如下所示:

 Log In 

然后以这种方式引用它:

 $(".submit-link").click(function() { $(this).closest("form").submit(); }); 

这使得任何能够提交它所在的

我在解决方案中唯一要改变的是将onclick事件添加到您的链接以便提交表单:

 <% using (Html.BeginForm("Login", "Account", FormMethod.Post, new { id = "loginForm" })) { %> <%= Html.TextBoxFor(x => x.UserName)%>
<%= Html.TextBoxFor(x => x.Password)%>
Log In <%}%>

难道你不能只在它上面放一个onclick事件吗?

 Log In