此 JS 代码在 .cshtml 文件中正常工作,但在 .js 文件(外部 javascript 文件)中不起作用

This JS code works properly in the .cshtml file, but not working in .js file(external javascript file)

此 JS 代码在 .cshtml 文件中正常工作,但在 .js 文件(外部 javascript 文件)中不起作用。谁能帮我?我也在尝试使用 Ajax GET 但也无法在 js 文件中工作

[Area("Administrator")]
[Authorize(Roles = "Administrator")]
public class HomeController : Controller
{
    private readonly ApplicationDbContext _context;

    public HomeController(ApplicationDbContext context)
    {
        _context = context;
    }

    public JsonResult EarningChart()
    {
        var earning = _context.Orders.Where(o => o.Status == OrderStatus.Completed).ToList();
        return Json (earning);
    }

 <script type="text/javascript">
$(function () {
    //ajax function for fetch data
    $.ajax({
        type: "GET",
        url: '@Url.Action("EarningChart","Home",new { area ="Administrator"})',
        success: function (data) {
            alert('succeed');
        },
        error: function () {
            alert('Failed');
        }
    });
});
    </script>

您没有显示任何 js 文件或任何 cshtml 文件

从您的评论中我看到您有:

<script type="text/javascript"> $(function () { //ajax function for fetch data $.ajax({ type: "GET", url: '@Url.Action("EarningChart","Home",new { area ="Administrator"})', success: function (data) { alert('succeed'); }, error: function () { alert('failed'); } }); }); </script>

我假设你的问题是,如果你的 cshtml 文件中有以上代码,它可以工作,但如果你有单独的 js 文件中的以上代码,它就不起作用

为了包含您的 js 文件,您需要像这样将它包含在您的 cshtml 页面中:

<script src="yourJsFilePathHere"></script>

@Url.Action()是razor(服务器端)代码,不能在.js文件中使用。你可以在你的主页添加一个隐藏字段来存储url,然后使用javascript/jquery 从 .js 文件中的隐藏字段中获取 url :

@Html.Hidden("MyURL", Url.Action("EarningChart","Home",,new { area ="Administrator"}))

然后在你的js文件中:

<script type="text/javascript">
    $(function () {

        var myUrl = $("#MyURL").val();
        //ajax function for fetch data
        $.ajax({
            type: "GET",
            url: myUrl,
            success: function (data) {
                alert('succeed');
            },
            error: function () {
                alert('Failed');
            }
        });
    });
</script>