ASP MVC3通过“返回视图(模型)”传递额外的参数

时间:2012-06-21 07:13:48

标签: asp.net-mvc asp.net-mvc-3

我非常需要使用View类传递url params。这是代码:

            if (!ModelState.IsValid)
            {
                return View(model);
            }

这不仅应该返回基于模型的视图,还应该为URL添加特定的参数(param不会更改视图详细信息,但是需要它,因为它是少数自动生成的SessionKeys之一(用于查看app的每个选项卡/窗口一个)并且我知道没有其他方法可以达到它,不​​同于传递为param(它不能每次都生成,'cos参数会改变;它不能是全局变量,因为它会在每次刷新时重置其值;它不能是静态的,因为静态是evul)。

哦,使用表单和提交按钮调用此操作,而不是actionLink或类似的东西。

EDIT1:刷新后我需要params保留在URL中,或者我需要一些其他形式来保持通过刷新/验证而持续存在的数据失败。

2 个答案:

答案 0 :(得分:1)

使用

RedirectToAction("actionName","controller",
     new RouteValueDictionary(new {param1="value",param2="value2"});

或者您可以使用隐藏字段在页面中存储值,然后在需要时将其传递给它。

答案 1 :(得分:1)

如果我理解正确,您在网页上生成网址时需要使用哪些数据?这只是ViewModel的一部分 - 或者至少应该是它的一部分,因为它是View需要渲染的数据。

您可以使用ViewData添加不属于视图模型的任何额外数据。或者,更好的是,将数据添加为成员。同样,如果具有不同View Model的不同视图需要此数据,请添加ViewModel基类并从中派生,以便您可以共享该数据。