簡體   English   中英

找不到ASP.NET MVC Ajax請求錯誤

[英]ASP.NET MVC ajax request not found error

我正在嘗試通過Ajax從服務器獲取數據。

這是我的ajax請求:

$.ajax({
    type: 'post',
    contentType: "application/json; charset=utf-8",
    url: '@Url.Action("GetData", "MyController")',
    dataType: "json",
    data: { 'skip': '5' },
    success: function (data) {
        alert(data);
    },
    error: function (jqXHR, textStatus, errorThrown) {
        alert("error: STATUS = " + textStatus + "ERROR = " + errorThrown);
     }
});

和我的行動:

[HttpPost]
public ActionResult GetData(string skip)
{
    return new JsonResult() {Data = "test"};
}

使用此代碼,我得到404 not found error ,當我刪除HttpPost屬性時,我得到了Internal Server Error

更改您的AJAX網址,使其類似於以下格式:

url: "controller/action"

所以就你而言

url: "MyController/GetData"

您也可以嘗試以其他方式格式化數據字段。 例如:

data: "&skip=" + "5",

使用此Javascript函數可獲取所有類型的URL:

function rootUrl(url) {
    var _rootUrl = '@Url.Content("~")';
    var x = url;
    if (url.indexOf(_rootUrl) != 0) {
        x = _rootUrl + "/" + url;
        x = x.replace(/\/\//g, "/").replace(/\/\//g, "/");
    }
    return x;
};

然后將AJAX請求中的URL用作:

url: rootUrl("MyController/GetData")

添加屬性[FromBody],並且動作選擇器將不查找查詢字符串參數

[HttpPost]
public ActionResult GetData([FromBody]string skip)
{
    return new JsonResult() {Data = "test"};
}

暫無
暫無

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

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