没有按钮的Html.BeginForm和POST方法

时间:2016-08-26 23:12:52

标签: asp.net-mvc button post actionlink html.beginform

我找到了“如何在this主题中使用超链接(actionlink)而不是按钮”执行POST方法的问题的答案。

我以这种方式使用了表单的提交方法 - 看起来很简单:

@foreach (var item in Model)
{
    using (Html.BeginForm("Delete", "Area", new { id = item.id }, FormMethod.Post))
    {
        <tr>
        ...
        <td>

        <a href="#" onclick="$('#sbmt').trigger('click'); return false">Delete</a>
        <input id="sbmt" type="submit" style="visibility: hidden" />

        </td>
        </tr>
    }
}

没有按钮声明的典型声明

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

无效。

问题是:

1 /是否可以执行相同的操作但不隐藏按钮?我的意思是我根本不想在我的代码中使用(和隐藏)按钮。

2 /上面列出的解决方案的优缺点是什么?

1 个答案:

答案 0 :(得分:0)

  1. 没有按钮是可能的。其中一种方法就是简单地给你的表单提供id

    using (Html.BeginForm("Delete", "Area", new { id = item.id }, FormMethod.Post,new {id="frm"}))
    {
    
    }
    and then 
    <a href="javascript:$('frm').submit();" class="login-button"></a>
    
  2. 如果不是jquery那么

        <a href="javascript:document.getElementById("frm").submit();" class="login-button"></a>
    
    1. 我不知道的按钮有什么问题。我没有看到任何缺点,除了脏编码(坏方法)提交表格。