1

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

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

IE

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

我想调用为页面提供服务的任何控制器的“保存”操作。我以为这会直接起作用,但似乎没有。有没有优雅的解决方案?

4

1 回答 1

7

如果你直接进入你的视野,你可以做

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

如果没有,并且 javascript 在外部文件中,您可以将生成的 url 附加Url.Action到元素作为data-?html5 属性。然后在进行 ajax 调用之前动态读取该属性值。

<input type="text" data-save-action-url="@Url.Action("Save")" />

你不应该asp.net mvc 中硬编码 url。始终使用Url.Action. 它会在生成 url 时检查您的路由配置,并始终根据它返回正确的值。如果您对 url 进行硬编码,当您更改路由配置时,您的应用程序可能会变得不可用。而且您必须手动更改应用程序中的每个 url。

于 2011-09-30T11:19:13.343 回答