MVC相当于@ Html.ActionLink通过javascript

前端之家收集整理的这篇文章主要介绍了MVC相当于@ Html.ActionLink通过javascript前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何通过 JavaScript代码编写相当于@ Html.ActionLink的代码,即调用MVC操作,然后创建一个新的视图而不返回到调用视图?

解决方法

javascript是一种客户端语言,不了解您正在使用的服务器端的语言.因此,在使用服务器端路由定义生成URL的服务器端帮助程序的javascript中没有等价物是正常现象.

它不是很清楚你正在尝试实现,但如果你想使用通过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>

如果你想在一个单独的javascript文件中使用这个url,你无法访问服务器端的帮助者,你仍然可以根据情况把这个URL包含在一些DOM元素中.

例如:

<div id="foo" data-url="@Url.Action("SomeAction","SomeController")">Click me</div>

请注意我们嵌入到DOM中的数据网址HTML5属性,并使用服务器端帮助器,以确保生成的网址将始终根据路由定义正确.现在我们可以在一个单独的JavaScript文件中,不引人注目的订阅此div的点击事件并检索url:

$('#foo').click(function() {
    var url = $(this).data('url');
    // do something with the url client side variable,for example redirect
    window.location.href = url;
});

其他实例显然包括标准< a>和< form>应该使用服务器端HTML助手生成的元素,然后您在单独的JavaScript文件中必须执行的所有操作都是获取其相应的href或action属性来检索实际的url并使用它执行某些操作.

原文链接:https://www.f2er.com/html/227898.html

猜你在找的HTML相关文章