MVC下JS库中如何应用@Url.Action地址

4 篇文章 0 订阅

在.Net MVC开发时,前端页面要访问时我们一般都会使用@Url.Action("")来获取请求地址,不使用直接输入地址,因为MVC时路由来控制请求访问的,你直接输入地址可能会根据环境的改变而不一致。

如果直接在View上,我们在js脚本中写入如下请求地址程序是能解析对应Control中的Action的

var url = "@Url.Action("Add")";

但是有时候,我们前段脚本比较多可能会用单独建立个js库的形式,比如test.js里面就按此页面的一些ajax调用后台的方法如add(),

此时,我们在里面使用刚才的代码去获取后端服务器的url是获取不到的,如果我们直接写入地址可能当时可以,发布环境有变化就不行了。其实可以在前段比如新增按钮上增加一自定义属性如:

<a href=" javascript:;" id="btn_add" class="weui-btn weui-btn_mini weui-btn_primary" data-request-url="@Url.Action("AddTime", "SfdTime")/">新增</a>

此代码中我们加入了自定义属性data-request-url,将此值设置为@Url.Action("AddTime", "SfdTime"),因为此代码是在View中的,使用能够解析刚才的Action

然后对此新增按钮btn_add设置下事件

    $("#btn_add").click(function () {
        AddTime($(this).data("request-url"));
    });

这样当执行此按钮的Click事件时会将data-request-url属性传入AddTime方法中,此时你的方法可以单独放在js库中,通过获取此url来做相应的请求

function AddTime(url) {
    $.post(url,
        { "doc_id": $("#doc_id").val(), "datea": $("#datea").val(), "amat": $("#stime").val(), "ambt": $("#etime").val() },
        function (result) {
            if (result == "ok") {
                $('#dg').datagrid("reload");
            }
            else {
                Msg("提示", result);
            }
        })
}

这样就可以做到js库中也可以执行相应的请求了

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值