MVC 相当于 @Html.ActionLink 通过 javascript
MVC equivalent of @Html.ActionLink through 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>
如果你想在单独的javascript文件中使用此url,而你无法访问服务器端的帮助程序,你仍然可以根据情况,在某个DOM元素中包含这个url。
例如:
<div id="foo" data-url="@Url.Action("SomeAction", "SomeController")">Click me</div>
请注意我们嵌入到 DOM 中的 data-url
HTML5 属性,并使用服务器端帮助程序来确保生成的 url 根据我们的路由定义始终正确。 现在我们可以在一个单独的 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并对其进行处理。
另一种选择是将URL存储在页面上某处的隐藏<div>
中,稍后通过Javascript调用它。它看起来像这样:
Index.cshtml:
<div style="display: none;" id="url">
@Url.Action("SomeAction", "SomeController")
</div>
然后,您可以在 Script.js 文件中使用它来构建所需的任何链接。
var url = $("#url").text();
然后,URL 变量将包含指向 /SomeController/SomeAction
的网页安全链接。
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 通过javascript重定向html传递php变量
- 单击更改图标并通过javascript添加一个css类
- 通过javascript/html访问twitter共享iframe
- 通过javascript下载文件时设置文件名
- 通过传递图像的URL通过javascript读取/处理图像-类似于PHP中的file_get_contents
- MVC在通过javascript提交时会丢失值
- 通过Javascript设置Telerik RadTreeView属性,如OnClientNodeExpanded
- 通过javascript操作图像,非常简单
- 通过javascript显示和更改文本
- Android Webview通过Javascript注入CSS
- 通过JavaScript捕获并更改默认警报()行为
- 通过 javascript 访问类
- 在Android WebView中通过javascript检测点击HTML选项标记
- 通过javascript从会话中提取用户名
- "访问控制允许起源”;通过javascript从http页面调用同一网站的httpsurl时出现问题
- 通过JavaScript设置表单目标
- 通过javascript将值传递到php
- 如何通过javascript或jquerycookie获取网页的刷新次数
- 通过Javascript将HTML中的电话号码与URL参数进行交换