Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从javascript调用操作方法_Javascript_Asp.net Mvc 3_Actionlink - Fatal编程技术网

从javascript调用操作方法

从javascript调用操作方法,javascript,asp.net-mvc-3,actionlink,Javascript,Asp.net Mvc 3,Actionlink,如果我需要从javascript代码中调用某个控制器的操作方法,我可以通过href调用它,对吗?诸如此类: $.colorbox({ href: '/Calendar/SessionPropertiesEditbox?starts='+start+' }) 那不行。问题是确切的链接也应该包括域名。 但是你不知道域名是什么。可能是“http://localhost:7741“今天,明天可能完全不同 那么,如何在javascript代码中模拟ActionLink行为呢 你错了;那就行了 这是一个

如果我需要从javascript代码中调用某个控制器的操作方法,我可以通过href调用它,对吗?诸如此类:

 $.colorbox({ href: '/Calendar/SessionPropertiesEditbox?starts='+start+' })
那不行。问题是确切的链接也应该包括域名。 但是你不知道域名是什么。可能是“http://localhost:7741“今天,明天可能完全不同


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

你错了;那就行了

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

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

从剃刀的角度来看,这看起来像

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

var url=“@Server.JavaScriptStringEncode(url.Action(…)”;

您不正确;那就行了

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

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

从剃刀的角度来看,这看起来像

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

var url=“@Server.JavaScriptStringEncode(url.Action(…)”;
尝试使用JsAction 尝试使用JsAction

真的。。。哦也许我的路线坏了。。我需要检查一下。谢谢我的编辑。您是在域根目录中,还是在
localhost:port/YourAppName
中?不,不,不。。我不能包括Razor语法。我从.js文件中调用它。或我实际上可以(?)你可以把它放在视图中单独的
标记中,并使用它向
.js
文件传递一个参数。。我明白了。这就是它不起作用的原因。我有两个类似的操作方法,一个接收int,另一个接收string。如果我删除其中一个,它确实有效。为什么我不能有两个同名的不同动作方法?真的。。。哦也许我的路线坏了。。我需要检查一下。谢谢我的编辑。您是在域根目录中,还是在
localhost:port/YourAppName
中?不,不,不。。我不能包括Razor语法。我从.js文件中调用它。或我实际上可以(?)你可以把它放在视图中单独的
标记中,并使用它向
.js
文件传递一个参数。。我明白了。这就是它不起作用的原因。我有两个类似的操作方法,一个接收int,另一个接收string。如果我删除其中一个,它确实有效。为什么我不能有两个同名的不同动作方法?