MultipleButtonAttribute<=之前都用這個方式可Google就有了
使用.Net Core時單純的直接submit的話一般方法都可以
目前使用jquery.unobtrusive-ajax來做的話都送不到後端
但用習慣了還是想繼續用下去
試過了很多方法最後找到一篇文章經測試後可以使用
Html部分如下跟之前一樣只是沒特別指定asp-controller and asp-action
<form data-ajax-begin="OnBegin" data-ajax-complete="OnComplete" data-ajax-method="post" data-ajax-success="OnSuccess" data-ajax="true" id="from1" method="post"> <div class="form-group"> <button class="btn btn-primary" id="Edit" type="submit">編輯</button> <button class="btn btn-danger" id="Delete" type="submit">刪除</button> </div> </form>javascript部分使用jquery在按鈕點擊後加上data-ajax-url的url
這是這次的重點部分
<script src="~/lib/Microsoft.jQuery.Unobtrusive.Ajax/jquery.unobtrusive-ajax.min.js"></script> <script> $("#Edit").on("click", function () { $("#from1").attr("data-ajax-url", "@Url.Action("自訂Action", "自訂Controller")" ); }); $("#Delete").on("click", function () { if (!confirm("確定刪除!!")) return false; $("#from1").attr("data-ajax-url", "@Url.Action("自訂Action", "自訂Controller")" ); }); </script>後端部分宣告兩個ActionResult來接收即可
[HttpPost] [ValidateAntiForgeryToken] public IActionResult Edit() { ResultViewModel result = new ResultViewModel(); return Json(result); } [HttpPost,ActionName("Delete")] [ValidateAntiForgeryToken] public IActionResult DeleteConfirmed() { ResultViewModel result = new ResultViewModel(); return Json(result); }個人覺得這樣寫程式有點不好看
但目前好像就只有這方法可行
歡迎有更好方法可以提供謝謝
參考來源
jQuery Unobtrusive Ajax Helpers in ASP.NET Core
Multiple Submit Buttons