簡體   English   中英

javascript ajax調用未命中控制器

[英]javascript ajax call not not hitting controller

我試圖建立一個模擬文件列表供Dropzone.js使用。 我有一個MVC控制器方法定義如下:

    [HttpPost]
    public async Task<JsonResult> GetImageInfo(int imageId)
    {
        //int imgId;
        //int.TryParse(imageId, out imgId);
        var image = await RepublikDb.PropertyImage.FindAsync(imageId);

        var path = Server.MapPath(image.ImageURI);
        var size = new FileInfo(path).Length;
        var fileName = new FileInfo(path).Name;
        var thumbnailURI = image.ThumbnailImage.ImageURI.TrimStart('~');

        return Json(new { fileName = fileName, size = size, thumbnailURI = thumbnailURI });
    }

我已經用Postman測試了此終結點,並且一切正常,但是,每次我嘗試在JS中獲取數據時,服務器都會返回500錯誤代碼,並帶有以下內容: 異常詳細信息: System.ArgumentException:參數字典包含非空類型'System.Int32'的參數'imageId'的空條目

這是JS AJAX代碼://從剃刀指向JS的入口。 這里用逗號分隔的字符串。 例如。 imageIds =“ 10,12,14,16”

EditFormInit("@Model.PropertyImageIds") 

var EditFormInit = function (imageIds) {

var imageIdsArr = imageIds.split(",");
var imageFiles = [];

imageIdsArr.forEach(function (ImageId) {
    var requestData = { imageId: parseInt(ImageId) };

    //var reqUrl = "?imageId=";
    //reqUrl = reqUrl.concat(requestData.imageId.toString());

    $.ajax({
        type: "POST",
        url: "/Admin/PropertyImage/GetImageInfo",
        data: requestData,
        contentType: "text/json; charset=utf-8",
        dataType: "json",
        success: function (data, status, jqXHR) {
            var image = { fileName: data.fileName, size: data.size, thumbnail: data.thumbnailURI }
            imageFiles.push(image);
        }
    });
});

嘗試:

contentType: "application/json"

這應該工作

因此我終於意識到了為什么控制器沒有受到打擊的原因,並解決了該問題。 $ .ajax正在向控制器傳遞JSON請求,這顯然是失敗的。一旦我刪除了有問題的行,控制器斷點終於被擊中。

$.ajax({
   type: "POST",
   url: "/Admin/PropertyImage/GetImageInfo",
   data: requestData,
   success: function (data, status, jqXHR) {
      var image = { fileName: data.fileName, size: data.size, thumbnail: data.thumbnailURI }
      imageFiles.push(image);
   }}
);

即使現在來自控制器的響應又回來了,imageFiles數組仍然為空。 我在這里做錯了什么?

暫無
暫無

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

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