Asp.net mvc 将URL作为参数传递给新视图

Asp.net mvc 将URL作为参数传递给新视图,asp.net-mvc,parameter-passing,viewbag,Asp.net Mvc,Parameter Passing,Viewbag,我花了几个小时想办法解决这个问题。这是一个如此简单的要求,以至于我无法相信我需要创建视图模型或任何如此宏大的东西 非常简单,使用MVC5,我有一个视图,我们称之为Page1,其中有一个超链接。当用户单击该超链接时,我希望他们被带到一个新视图,第2页。第2页上有一个iframe。我想将iframe的src属性设置为Page1的URL,该视图是重定向用户的源视图 因此,如果我可以使用ViewBag(这里的人似乎不推荐),将Page1的URL从该视图传递到Page2的控制器,然后在Page2的标记中使

我花了几个小时想办法解决这个问题。这是一个如此简单的要求,以至于我无法相信我需要创建视图模型或任何如此宏大的东西

非常简单,使用MVC5,我有一个视图,我们称之为Page1,其中有一个超链接。当用户单击该超链接时,我希望他们被带到一个新视图,第2页。第2页上有一个
iframe
。我想将
iframe
src
属性设置为Page1的URL,该视图是重定向用户的源视图

因此,如果我可以使用ViewBag(这里的人似乎不推荐),将Page1的URL从该视图传递到Page2的控制器,然后在Page2的标记中使用Razor来定义
iframe
src
属性,我想这会很好。不幸的是,人们似乎不喜欢使用ViewBag,而且,我也找不到如何在代码中真正实现这一点的端到端描述


有人能给我一个简单的解决方案吗?

视图的视图模型可以是一个字符串-因此,如果您只需要向视图传递一个值(用作src的URL),那么在Page2.cshtml中,您只需在顶部定义模型,如下所示:

@模型字符串

要将其用作src属性,只需执行以下操作:

然后从控制器将url字符串作为模型传递给视图,如下所示:

返回视图(“第2页”,myUrlStringVariable)


因此,总而言之,ViewModel不一定是您创建的新类-对于这样的最基本场景,您可以使用例如字符串作为ViewModel。一旦开始将多个数据位传递到视图中,通常情况下,您需要创建一个特定的ViewModel类。

另一个选项可能是JavaScript解决方案。类似于

 document.getElementById('myIframe').src = document.referrer;

谢谢你如此清晰简洁的回答。我现在唯一缺少的是如何首先将参数传递给控制器。我是否以某种方式将其包含在第1页链接的
href
属性中?这在技术上解决了我的问题,但没有回答我的问题!它允许我做我想做的事情,我使用了你的解决方案,但它没有告诉我如何在页面之间简单地传递变量,我确信我很快就会需要这样做,这就是我所要求的。所以,非常感谢你,为了安抚众神,我将投票支持你的答案,但我认为我不能接受它作为我最初问题的实际答案。谢谢。您可以通过链接传递url。所以-您需要添加“?url=url”。最终结果类似于“http://mydomain/mypage?url=theurl”