asp.net-mvc - 相对于当前 Controller 的 MVC Ajax 操作

标签 asp.net-mvc jquery asp.net-mvc-routing relative-url

我正在尝试从母版页中的链接获取 Ajax 调用。

所以我只想指定相对于当前页面/ Controller 的操作。

 $.ajax({
      url: '/Save',
      type: "GET",
      // .. etc 
 });

我想调用为页面提供服务的任何 Controller 的“保存”操作。我以为这会立即起作用,但事实似乎并非如此。有没有优雅的解决方案?

最佳答案

如果你直接理解这一点,你就可以做到

 $.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 进行硬编码,则当您更改路由配置时,您的应用程序可能会变得无法使用。而且您必须手动更改应用程序中的每个网址。

关于asp.net-mvc - 相对于当前 Controller 的 MVC Ajax 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7609469/

相关文章:

c# - 如果不可用,请预先附加路由

asp.net-mvc - ASP.NET MVC多语言网址/路由

javascript - 返回 false 不适用于 MVC post

c# - HttpContext.Current 未在 MVC 4 项目中解析

c# - 在 MVC 中使用 ChildActionOnly

需要解释的 javascript 行

Jquery Animate 菜单向下

javascript - MVC Ajax 对带参数的 Controller 方法的调用已连接,但参数值为 null

javascript - 为多个实例创建一个 jquery 代码

c# - MVC 默认路由不适用于 Controller