.JS 文件在 Ajax Url 中使用 @url.action
.JS File using @url.action in Ajax Url
我一直在尝试在另一个外部 .JS
文件中使用 Ajax url
中的 @Url.Action
,但不幸的是我没有成功。
这是我的代码:
$.ajax({
type: 'post',
url: "@Url.Action("ClearData","Home")",
success: function () {
}
});
此代码仅在视图内部有效,但在 Javascript externally
中无效。
我已经搜索了一些可能的解决方案,但它似乎与此不同。
有没有其他方法可以在另一个 .Js
文件中使用 @Url.Action
?
@Url.Action()
是剃刀(服务器端)代码,不在外部文件中解析。选项包括
在主文件中声明一个全局变量,比方说
var url = @Url.Action("ClearData","Home");
然后在外部脚本中使用 ajax 中的 url: url
调用
在您处理的元素中包含一个 data-
属性,例如,如果它是一个按钮单击事件,则
<button data-url="@Url.Action("ClearData","Home")" id="mybutton">
然后在外部文件中读取该值,例如
$('#mybutton').click(function() {
var url = $(this).data('url');
$.ajax({
url: url,
....
如果您的 js 代码在视图中
$.ajax({
type: 'post',
url: "@Url.Action("ClearData","Home")",
success: function () {
}
});
这是工作
当js代码是一个单独的(外部文件)
@Url.Action("ClearData","Home")
无效,
这种情况下你必须写总计 url 或文件夹路径
你可以创建一个部分视图,然后在这个视图里面只是隐藏字段的列表
比如
@Html.Hidden("ActionName", @Url.Action("ActionName", "Controller"))
生成这个
<input id="ActionName" name="ActionName" type="hidden" value="/controller/ActionName">
那么你可以这样称呼它
var urlAction = $('#ActioName').val();
或者你可以像我一样创建一个 js 函数
function ActionCaller(actionName)
{
return $('#' + actionName).val();
}
var action = ActionCaller(ActionName);
我一直在尝试在另一个外部 .JS
文件中使用 Ajax url
中的 @Url.Action
,但不幸的是我没有成功。
这是我的代码:
$.ajax({
type: 'post',
url: "@Url.Action("ClearData","Home")",
success: function () {
}
});
此代码仅在视图内部有效,但在 Javascript externally
中无效。
我已经搜索了一些可能的解决方案,但它似乎与此不同。
有没有其他方法可以在另一个 .Js
文件中使用 @Url.Action
?
@Url.Action()
是剃刀(服务器端)代码,不在外部文件中解析。选项包括
在主文件中声明一个全局变量,比方说
var url = @Url.Action("ClearData","Home");
然后在外部脚本中使用 ajax 中的 url: url
调用
在您处理的元素中包含一个 data-
属性,例如,如果它是一个按钮单击事件,则
<button data-url="@Url.Action("ClearData","Home")" id="mybutton">
然后在外部文件中读取该值,例如
$('#mybutton').click(function() {
var url = $(this).data('url');
$.ajax({
url: url,
....
如果您的 js 代码在视图中
$.ajax({
type: 'post',
url: "@Url.Action("ClearData","Home")",
success: function () {
}
});
这是工作
当js代码是一个单独的(外部文件)
@Url.Action("ClearData","Home")
无效,
这种情况下你必须写总计 url 或文件夹路径
你可以创建一个部分视图,然后在这个视图里面只是隐藏字段的列表 比如
@Html.Hidden("ActionName", @Url.Action("ActionName", "Controller"))
生成这个
<input id="ActionName" name="ActionName" type="hidden" value="/controller/ActionName">
那么你可以这样称呼它
var urlAction = $('#ActioName').val();
或者你可以像我一样创建一个 js 函数
function ActionCaller(actionName)
{
return $('#' + actionName).val();
}
var action = ActionCaller(ActionName);