在使用带有JQuery的ASP.NET MVC时,不要硬编码url的最佳方法

Mis*_* N. 5 url asp.net-mvc jquery

你好伙计们,

我正在使用带有jquery的ASP.NET MVC,现在它很棒.只是,有一个问题困扰着我.我应该如何处理jquery方法中的URL?我真的不想硬编码,就像这里:

 $(function() {  
        $.getJSON("/Home/List", function(data) {  
            var items = "---------------------";  
            $.each(data, function(i, country) {  
                items += "" + country.Text + "";  
            });  
            $("#Countries").html(items);  
        });  

       $("#Countries").change(function() {  
           $.getJSON("/Home/States/List/" + $("#Countries > option:selected").attr("value"), function(data) {  
               var items = "---------------------";  
               $.each(data, function(i, state) {  
                   items += "" + state.Text + "";  
               });  
               $("#States").html(items);  
           });  
       });  
   });  
Run Code Online (Sandbox Code Playgroud)

强烈建议使用HTML帮助方法在MVC中创建链接,如Html.ActionLink,Html.BeginForm,以防有人更改HomeController映射到MyHome而不是Home,这样就没有问题.

那么,如何不像在例子中硬编码网址?

另外,我不想使用ASP.NET Ajax,因为我同意这个答案asp-net-ajax-vs-jquery-in-asp-net-mvc.

谢谢

Dar*_*rov 6

您可以定义多个全局javascript变量:

<script type="text/javascript">
    var listUrl = '<%= Url.Action("Index", "Home") %>';
    var statesListUrl = '<%= Url.Action("States", "Home") %>';
</script>
Run Code Online (Sandbox Code Playgroud)

稍后将由$ .getJSON方法使用.