我想从一个主页的链接得到一个Ajax调用。
所以我只想指定相对于当前页面/控制器的动作
。
$.ajax({
url: '/Save',
type: "GET",
// .. etc
});
我想调用为页面提供服务的控制器的"Save"动作。我以为这能马上奏效,但似乎行不通。是否有一个优雅的解决方案?
如果你把这个直接放到视图中,你可以做
$.ajax({
url: '@Url.Action("Save")',
type: "GET",
// .. etc
});
如果没有,并且javascript在外部文件中,您可以将Url.Action
生成的url附加到元素作为data-?
的html5属性。然后在执行ajax调用之前动态读取该属性值。
<input type="text" data-save-action-url="@Url.Action("Save")" />
你应该永远不要在asp.net mvc中硬编码url。始终使用Url.Action
。它在生成url时检查你的路由配置,并总是根据它返回正确的值。如果您硬编码url,那么当您更改路由配置时,您的应用程序可能无法使用。而且你必须手动更改应用程序中的每个url。