通过ajax调用c#方法时出现Javascript错误404

标签 javascript c# jquery ajax

我不知道问题是什么,我无法连接到我的 Web 服务。它显示错误 404。据我所知它应该可以工作。由于我将代码从 *.cshtml 删除到单独的 .js 文件中,因此它不再工作。

Javascript 文件位于子文件夹“Scripts/Reps/report.ui.js”

我想使用标准配置从 HomeController.cs 调用 GetReport 方法。

你能告诉我我做错了什么,或者我是否完全误解了那部分? 谢谢你帮助我

$("#createReport").click(function () {
    var postdata = JSON.stringify(
        {
            "EvaluatedPrice": $("#estimatedPriceValue").text(),
            "Address": $("#address").text(),
            "SomeValue": "Som RandomValue To test"
        });

    try {
        $.ajax({
            type: 'POST',
            url: '@Url.Action("GetReport", "Home")',
            data: postdata,
            dataType: "json",
            success: getSuccess,
            error: getFail
        });
    }
    catch (e) {
        alert(e);
    }
});

function getSuccess(data, textStatus, jqXHR) {
    alert(data.Response);
}

function getFail(jqXHR, textStatus, errorThrown) {
    alert(jqXHR.status);
}
public class HomeController : Controller
    {
[HttpPost]
        [Route("GetReport")]
        public async Task<ActionResult> GetReport(HttpContext context)
        {
            string jsonString = string.Empty;

            var data = context;

            return Json(new { data = 12 });
        }
    }
}

最佳答案

@Url.Action("GetReport", "Home") 它不适用于 *.js 文件。 razor 语法仅适用于 *.cshtml 文件。您需要将该 url 存储在变量中。

关于通过ajax调用c#方法时出现Javascript错误404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55669669/

相关文章:

c# - Parallel.For 具有 64 位无符号索引 (UInt64)

c# - 更好的 Frog 穿越算法

javascript - 未选中特定复选框按钮时如何不显示 div 区域?

javascript - AngularJS 路由/ajax 调用/500 内部服务器错误

javascript - 以angular2 : Body (FormData) empty上传文件

c# - 无法将 "C:\Windows\System32\shdocvw.dll"添加到我的项目中

php - dropzone.js 未上传

javascript - 创建多个 Canvas 图案失败

javascript - 在开始动画之前预加载所有声音和图像

javascript - 如何将 this.props.children 传递给 Textarea