相对于当前控制器的 MVC Ajax 操作
我正在尝试从母版页中的链接获取 Ajax 调用。
所以我只想指定相对于当前页面/控制器的操作。
即
$.ajax({
url: '/Save',
type: "GET",
// .. etc
});
我想调用为页面提供服务的任何控制器的“保存”操作。我以为这会立即起作用,但事实似乎并非如此。有优雅的解决方案吗?
I'm trying to get an Ajax call from a link in a master page.
So I want to specify only the action relative to the current page/controller.
i.e.
$.ajax({
url: '/Save',
type: "GET",
// .. etc
});
I want to call the "Save" action of whatever controller served the page. I thought this would work straight off, but it doesn't appear to. Is there an elegant solution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果你直接看到这个,你可以这样做
如果没有,并且 javascript 在外部文件中,你可以附加使用
Url.Action
到元素作为data-?
html5 属性。然后在进行 ajax 调用之前动态读取该属性值。您不应该永远在 asp.net mvc 中硬编码 url。始终使用
Url.Action
。它在生成 url 时检查您的路由配置,并始终根据它返回正确的值。如果您对 url 进行硬编码,则当您更改路由配置时,您的应用程序可能会变得无法使用。您必须手动更改应用程序中的每个网址。If you got this straight into your view, you could do
If not, and javascript is in external file, you could attach url generated with
Url.Action
to element asdata-?
html5 attribute. And then dynamically read that attribute value before doing ajax call.You should never hardcode url's in asp.net mvc. Always use
Url.Action
. It inspects your routing configuration when generating urls, and will always return correct value according to it. If you hardcode urls, your application may become unusable when you change routing configuration. And you will have to change every single url in you application manually.