繁体   English   中英

asp.net mvc在javascript中打开另一个视图

[英]asp.net mvc open another view in javascript

将我的大脑从WebForms迁移到MVC,我想:

1)单击一个按钮,将2)执行一些javascript,将3)打开一个新窗口(或选项卡,无论浏览器是为哪个设置),将显示来自同一解决方案的现有视图,以及4)具有该视图执行一些数据加载

我被困在3和4

3)在此:

function foo(){
var wrkURL = globalURLVarFromViewOneThatPointsToViewTwo
window.open(wrkURL,"_blank")
}

如何在同一解决方案中指定另一个现有视图(ViewTwo)的URL? 我可以在ViewOne中调用一个助手,该助手将在调用视图中创建该URL,并加载到globalURLVarFromViewOneThatPointsToViewTwo中吗? 或者,如果我必须拼写ViewTwo的URL,该语法是什么样的?

4)如何让ViewTwo在显示之前或立即自动执行一些数据操作(例如为FlexGrid查找数据)? 我知道如何对document.ready上的控制器/动作进行Ajax调用; 还有其他方法来调用控制器/动作并加载view.bag,因为显示了视图吗?

实际上, 操作方法会响应URL。 因此,您需要为该操作方法创建一个URL。 确保从操作中返回该特定视图。

var wrkURL = '@Url.Action("SomeAction", "SomeController")';

要构建网址,请查看URL帮助器:

@Url.Action("ActionName", "Controller", new { 
    someVariable= someData
}) 

至于#4,请注意,当我构建URL时,是使用路由参数构建的。 这些参数将传递给控制器​​的操作,您可以使用它们来做自己想做的事情(只要确保已配置路由,您将获得与预期操作相应的匹配项)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM