此 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>
此 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>