Html.Action中的MVC Html.Raw为空

时间:2015-04-17 08:55:57

标签: c# asp.net-mvc

在控制器中,我为ViewBag指定了一个字符串:

HomeController中:

ViewBag.Parameters = "new { needSearch = true }";

然后在视图中,我这样做了:

@Url.Action("doSearch", Html.Raw(ViewBag.Parameters))

然后我看了一下开发工具,输出是

/Home/doSearch

并且缺少查询字符串(即needSearch = true)

我做了另一个测试,我这样做是为了检查它是否可以打印ViewBag:

 @Html.Raw(ViewBag.Parameters)

上面的代码输出了令人厌恶的结果:

needSearch=true

我制作了一个小提琴样本:

https://dotnetfiddle.net/FF1iGV

正如您在样本中看到的那样

如果我拨打@Url.Action("doSearch", Html.Raw(ViewBag.Parameters)),则缺少查询字符串

有什么问题?

1 个答案:

答案 0 :(得分:1)

构建代码ViewBag.Parameters是一个字符串类型,因此它将作为控制器名称。试试这个

ViewBag.Parameters = new { needSearch = true };

@Url.Action("actionname", ViewBag.Parameters);