将ViewBag转换为routeValues

时间:2013-06-22 15:48:55

标签: asp.net-mvc

在控制器中我有:

ViewBag.SomeObject = "IntVal=5&StrVal=Hello";

在视图中我有:

@Html.ActionLink("a", "b", "c", new { page = 5, ViewBag.SomeObject }, null)

它给了我链接:

/c/b?page=5&SomeObject=&IntVal=5&StrVal=Hello

但我不想在网址中使用 SomeObject =& ,所以正确的链接应该看起来:

/c/b?page=5&IntVal=5&StrVal=Hello

我该怎么做?

2 个答案:

答案 0 :(得分:0)

您可以将RouteValueDictionary直接传递到ViewBag。像这样......

@Html.ActionLink("LinkText", "ActionName", new RouteValueDictionary(ViewBag.RouteValues))

然后在你的Controller中,你将拥有......

ViewBag.RouteValues = new RouteValueDictionary( new { 
        Page = 5,
        IntVal = 5,
        StrVal = "Hello"
    });

答案 1 :(得分:0)

在我使用的控制器中...

 ViewBag.RouteValues = new { 
        Page = 5,
        IntVal = 5,
        StrVal = "Hello"
    };

并在视图中...

@Html.ActionLink("LinkText", "ActionName", ViewBag.RouteValues as object)

对我有用。