Asp.net-Core

ASP.NET 5 MVC6 中的@Ajax.ActionLink

  • May 5, 2021

我正在使用 ASP.NET 5 RC1。

什麼等價ASP.NET 5 MVC 6@Ajax.ActionLink

例子:

@Ajax.ActionLink("Show", 
            "Show", 
            null, 
            new AjaxOptions { HttpMethod = "GET", 
            InsertionMode = InsertionMode.Replace, 
            UpdateTargetId = "dialog_window_id", 
            OnComplete = "your_js_function();" })

如中所用ASP.NET 4 MVC 5

我得到:

目前上下文中不存在名稱“Ajax”。

ASP.NET 5

更新:

我知道它不會被實施。是否有人可以為我提供 taghelper 程式碼範例替代方案?

您可以使用帶有 data_ajax 參數的正常 html 幫助程序,如下所示:

@Html.ActionLink("Link title", "Action", "Controller", null, new
{
  data_ajax = "true",
  data_ajax_method = "GET",
  data_ajax_mode = "replace",
  data_ajax_update = "#update-container"
})

解釋

我會在這裡猶豫一下,說那時它不是幫手。

它是一個組件。它不僅是 HTML,而且是 JavaScript。將 JavaScript 綁定到組件後,您使用的是哪個框架?您使用的是純 JavaScript 嗎?

如果此組件與純 JavaScript(非 jQuery)相關聯,則需要針對每個瀏覽器的所有目前、以前和未來版本對其進行更新/測試。

這就是為什麼我認為它是作為一個組件建構的,而不是建構到框架本身中的原因。

太多的移動元件,對客戶端可以並且將會改變的框架/軟體的依賴太多。

解決方案

至於解決方案,我的建議是使用 jQuery 或類似的東西。

HTML

<a class="ajaxLink" href="#" data-href="/Project" data-method="DELETE">Delete Project</a>

JavaScript

$(document).ready(function() {
   $("a.ajaxLink").on('click', function (){
       var self = this;
       $.ajax({
           type: $(this).attr('data-method'),
           url: $(this).attr('data-href')
       }).then(function() {
           // success callback
       });
   });
});

如您所見,這很容易成為一個簡單的客戶端解決方案,而不是伺服器端解決方案。

我希望這能回答您的問題並解決您的問題。

引用自:https://stackoverflow.com/questions/34134648