jquery - Url.Action 不适用于 getJSON

标签 jquery asp.net-mvc asp.net-mvc-4

我在 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/

相关文章:

jquery - 编写一个新的 jQuery 插件

javascript - 将 Youtube 的 javascript API 与 jQuery 结合使用

javascript - ReferenceError : 'x' is not defined - asp.net mvc 局部 View 和 jQuery/JavaScript - 将整个模型传递给操作方法

jquery - NVD3 - 使用最新版本的 Safari 上的折线图 NaN

jquery - 变换 :scale and :nth-child() selector don't work

c# - 使用 ViewBag 的 Asp.net mvc 下拉列表

jquery - 使用 signalR 通过 1 次广播更新多个 View

asp.net-mvc - 带 Moq 的单元测试存储库

asp.net-mvc - 多个字段的远程验证

c# - Ext.Net 100% 宽度布局