大家好,
我正在将 ASP.NET MVC 与 jquery 结合使用,目前一切进展顺利。只是,有一个问题一直困扰着我。我应该如何处理 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);
});
});
});
强烈建议使用 HTML 帮助器方法在 MVC 中创建链接,例如 Html.ActionLink、Html.BeginForm,这样万一有人更改将 HomeController 映射到 MyHome 而不是 Home 上,就不会有问题。
那么,如何不像示例中那样对 URL 进行硬编码呢?
另外,我不想使用 ASP.NET Ajax,因为我同意这个答案 asp-net-ajax-vs-jquery-in-asp-net-mvc .
谢谢
最佳答案
您可以定义多个全局 JavaScript 变量:
<script type="text/javascript">
var listUrl = '<%= Url.Action("Index", "Home") %>';
var statesListUrl = '<%= Url.Action("States", "Home") %>';
</script>
稍后将由 $.getJSON 方法使用。
关于jquery - 将 ASP.NET MVC 与 JQuery 结合使用时不硬编码 url 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1425999/