使用asp.net mvc 3在$ ajax中的相对URL

sar*_*ake 6 url relative-path razor asp.net-mvc-3

我知道可以使用这个功能

@Url.Action("MyInfo", "Home")
Run Code Online (Sandbox Code Playgroud)

避免网址的硬编码,但我的$.ajax调用是在一个单独的.js文件中.以上仍然有效吗?

据我所知,该@Url.Action遗嘱只能在Razor文件中使用.但考虑到我们被建议使用非突兀的JS,我不太清楚如何使用它@Url.Action.

请指教.

Dar*_*rov 12

以上仍然有效吗?

没有.

据我所知,@ Url.Action只能在Razor文件中使用

你的知识是正确的.

但考虑到我们被建议使用非突兀的JS,我不太确定如何使用@ Url.Action.

你可以在一些你不引人注意地增强的DOM元素上使用HTML5 data-*属性(除非这个元素已经是一个<form>或一个锚,在这种情况下它已经包含一个url):

<div id="foo" data-url="@Url.Action("foo")">Hello</div>
Run Code Online (Sandbox Code Playgroud)

然后在你单独的javascript文件中:

$(function() {
    $('#foo').click(function() {
        var url = $(this).data('url');
        // TODO: do something with the url
    });
});
Run Code Online (Sandbox Code Playgroud)