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

时间:2014-02-15 20:31:32

标签: javascript jquery asp.net asp.net-mvc

将我的大脑从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,而不是显示视图?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

要构建Url,请查看URL帮助程序:

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

对于#4,请注意,当我构建URL时,我正在使用路由参数构建它。这些参数将传递给您的控制器的操作,您可以随心所欲地执行操作(只需确保路由已配置,以便您获得适合您预期操作的匹配)。