Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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
MVC通过javascript与@Html.ActionLink等效_Javascript_Asp.net Mvc - Fatal编程技术网

MVC通过javascript与@Html.ActionLink等效

MVC通过javascript与@Html.ActionLink等效,javascript,asp.net-mvc,Javascript,Asp.net Mvc,如何通过javascript代码编写@Html.ActionLink的等效代码,即调用MVC操作,然后创建一个新视图而不返回调用视图?javascript是一种客户端语言,它对您使用的服务器端语言一无所知。因此,javascript中没有使用您的服务器端路由定义生成url的服务器端帮助程序的等价物是正常的 不太清楚您试图实现什么,但如果您想通过javascript调用某个url,可以使用服务器端帮助程序生成此url: <script type="text/javascript">

如何通过javascript代码编写@Html.ActionLink的等效代码,即调用MVC操作,然后创建一个新视图而不返回调用视图?

javascript
是一种客户端语言,它对您使用的服务器端语言一无所知。因此,javascript中没有使用您的服务器端路由定义生成url的服务器端帮助程序的等价物是正常的

不太清楚您试图实现什么,但如果您想通过javascript调用某个url,可以使用服务器端帮助程序生成此url:

<script type="text/javascript">
    var url = '@Url.Action("SomeAction", "SomeController")';
    // do something with the url client side variable, for example redirect
    window.location.href = url;
</script>

其他示例显然包括标准的
元素,这些元素应该使用服务器端HTML帮助程序生成,然后您在单独的javascript文件中所要做的就是获取它们相应的
href
action
属性以检索实际的url并对其进行处理它。

另一个选项是将URL存储在页面上某个隐藏的
中,然后通过Javascript调用它。它看起来是这样的:

Index.cshtml

<div style="display: none;" id="url">
   @Url.Action("SomeAction", "SomeController")
</div>

URL变量随后将包含指向
/SomeController/SomeAction

的websafe链接,是否要使用ajax?您希望javascript如何调用操作?谢谢。我一直在寻找“window.location.href=url;”代码,希望能帮上忙。如果这个答案帮助你解决了你遇到的问题,你可以考虑点击它旁边的记号来回答它:“DARIN DIMITROV,我们能把参数传递给特定的动作”@ URL.Action(“Action Action”,“SomeController”)在这个代码块中吗?
$('#foo').click(function() {
    var url = $(this).data('url');
    // do something with the url client side variable, for example redirect
    window.location.href = url;
});
<div style="display: none;" id="url">
   @Url.Action("SomeAction", "SomeController")
</div>
var url = $("#url").text();