如何使razor make POST创建的动作链接?

时间:2018-09-25 07:08:08

标签: c# asp.net-mvc

我在项目中使用了mvc 5。

我使用剃刀创建动作链接,该剃刀通过GET mthod将一些数据发送到动作方法。

这是动作链接:

<tbody>
    @foreach (var item in Model)
         {
               <tr><td>@Html.ActionLink(item.Name, "About", "Home", item, new { @class = "btn btn-featured btn-white height-30 width-100" })</td></tr>
         }
 </tbody>

我的问题是如何更改上面创建的操作链接,以使其通过POST发送数据到操作方法?

1 个答案:

答案 0 :(得分:0)

您正在使用HTML锚链接,该链接始终从浏览器执行GET操作。

如果您需要发表信息,则可以使用以下方法之一:

1。 Ajax Post

@Ajax.ActionLink("About", "Home", new { id = "myForm", @class = "btn btn-featured btn-white" }, new AjaxOptions { HttpMethod = "POST" })

要使用@Ajax,您需要从以下位置添加nuget引用: https://www.nuget.org/packages/Microsoft.jQuery.Unobtrusive.Ajax/

这会将新脚本添加到您的项目(jquery.unobtrusive-ajax.min.js)

否则,它将继续使用GET作为您的方法。

2。表单提交帖子

@using (Html.BeginForm("About", "Home", FormMethod.Post, new { id = "myForm", @class = "btn btn-featured btn-white" }))
{
   <a href="javascript:document.getElementById('myForm').submit()">
      <span>Submit</span>
   </a>
}