从javascript调用Action方法

时间:2011-04-07 16:22:05

标签: javascript asp.net-mvc-3 actionlink

如果我需要从javascript代码中调用一个控制器的动作方法,我可以调用它只是传递href,对吗?这样的事情:

 $.colorbox({ href: '/Calendar/SessionPropertiesEditbox?starts='+start+' })

那不行。问题是确切的链接也应该包括域名。 但你不知道域名是什么。今天可能是“http:// localhost:7741”,明天可能会完全不同。

那么如何在javascript代码中模拟ActionLink行为?

2 个答案:

答案 0 :(得分:3)

你错了;这将有效。

这是一个域相对路径,因此浏览器会自动添加当前域。

如果您的应用程序未在域根目录中运行,则它将无法运行,因为它将在域根目录中查找 如果是这样,您需要致电Url.Action并将其结果传递给您的Javascript。

在Razor视图中,这看起来像

<script>
    var url = "@Server.JavaScriptStringEncode(Url.Action(...))";
</script>

答案 1 :(得分:1)

尝试使用JsAction http://jsaction.codeplex.com