我知道如何将链接路由到控制器,我知道如何从视图中打开URL。但我不知道如何将两者结合起来。
我通常会在视图中保持打开URL逻辑,但我想在重定向之前设置一些变量,所以我正在寻找可以从控制器打开URL的东西。我想在重定向到URL之前设置一些会话变量。
所以这就是我想要的:
@Html.ActionLink("Click Me!", "HandleClick", "Controller", null, null)
在m控制器中:
public ActionResult HandleClick()
{
// Set Session variables
// Open a URL
}
我该怎么做?另外,还有其他更好的方法吗?
请注意,此处的网址不是路线,而是http://www.google.com
等外部主机答案 0 :(得分:0)
您可以使用ajax.actionlink和javascript
@Ajax.ActionLink("Click Me!", "HandleClick", "Controller", new AjaxOptions() { OnSuccess = "mySucess" });
<script>
function mySuccess() {
window.open('http://www.google.com/');
}
</scrip
答案 1 :(得分:0)
标记的答案对我不起作用。我是这样做的:
在视图中:
@Ajax.ActionLink("Click Me!", "HandleClick", new { url = "www.google.com" }, null, new { @target = "_blank" })
注意事项:
在控制器中:
public ActionResult HandleClick(string url)
{
//TODO do any server-side operation
return Redirect(url);
}
这将打开一个新标签,然后将新标签重定向到指定的 url。
无需使用 JavaScript。