簡體   English   中英

Url.Action '@Url.Action(“Update”, “Admin”)'查詢字符串在 .NET MVC 中不起作用

[英]The Url.Action '@Url.Action(“Update”, “Admin”)'query string which is not working in .NET MVC

Ajax 生成的查詢字符串

url:'@Url.Action("Update","Admin")'

http://localhost:61887/Adimn/Update?id=16這不起作用但是當 url 給出為

url: '/Admin/Update'

它產生

http://localhost:61887/Adimn/Update/16

它工作正常。
為什么會這樣?

這是我的腳本:


function EditUser(value) {
       $.ajax({
           url: '@Url.Action("Update", "Admin")'
           url: '/Admin/Update',
           data: {
               id: value
           }
       })
       .done(function (response) {
           $("#Ajaxcontainer").html(response);
           focusAction("Ajaxcontainer");
       })
       .fail(function (XMLHttpRequest, textStatus, errorThrown) {
           alert("FAIL");
       });
   }

這是 HTML 鏈接:

<button type="button" class="btn btn-primary btn-sm" data-id="@item.ID" onclick="EditUser(@item.ID);">Edit</button>

您可以將參數傳遞給 Url.Action,例如:

Url.Action("Update", "Admin", new { id = id });

所以:

        $.ajax({
            url: '@Url.Action("Update", "Admin", new { id = 16})',
            //url: '/Admin/Update/16',
            contentType: "application/json",
            success: function (result) { 
                  //   your code here
            },
            error: function (xhr, resp, text) { console.log(xhr, resp, text); }
        });

這樣,請求的 url 將是: http://localhost:61887/Adimn/Update/16

盡管,

        $.ajax({
            url: '/Admin/Update/',
            type: "GET",
            data: {
                "id":16
            },
            contentType: "application/json",
            success: function (result) { alert('success'); },
            error: function (result) { alert('Error'); }
        });

這樣,請求的 url 將是: http://localhost:61887/Adimn/Update/?id=16

您之所以在 url ?id=16的末尾看到查詢字符串,是因為默認情況下您通過 ajax 發送Get請求。 您可以決定在 ajax 調用中使用type: "POST",以避免查詢字符串,而是將 model 數據捆綁並通過消息正文發送。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM