我在 MVC4 RAZOR View 项目中有以下 jQuery 代码。当我对 url 进行硬编码时,号召性用语方法工作正常。但是当我使用 Url.Action
时,它不起作用。
硬编码方法的结果:http://localhost:64994/Search/GetCostpages/?costPageNumber=111
Url.Action 方法的结果:http://localhost:64994/@Url.Action(%22Search%22,%20%22GetCostpages%22)?costPageNumber=111
需要纠正什么才能使其正常工作?
$(function ()
{
$("#btnCostPageNumberMagnifingLens").click(function ()
{
var costPageNumber = $("#txtCostPageNumber").val();
//$.getJSON('/Search/GetCostpages/',{costPageNumber: costPageNumber},
$.getJSON('@Url.Action("Search", "GetCostpages")',{costPageNumber: costPageNumber},
function (data)
{
alert('Inside Function');
});
});
});
最佳答案
您不能在单独的 javascript 文件中使用服务器端帮助程序。您可以使用 DOM 中的 url。例如,这里您以不显眼的方式 AJAX 化了一些 btnCostPageNumberMagnifingLens
元素。
因此您可以在此按钮上使用 HTML5 data-* 属性来放置所需的 url:
<input type="button" id="btnCostPageNumberMagnifingLens" data-url="@Url.Action("Search", "GetCostpages")" value="some button" />
然后在单独的 javascript 文件中,只需从 DOM 读取它并将其用于 AJAX 请求:
$(function () {
$('#btnCostPageNumberMagnifingLens').click(function () {
var costPageNumber = $('#txtCostPageNumber').val();
var url = $(this).data('url');
$.getJSON(url, { costPageNumber: costPageNumber }, function (data) {
alert('Inside Function');
});
});
});
关于jquery - Url.Action 不适用于 getJSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18693111/