在控制器中,我为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))
,则缺少查询字符串
有什么问题?
答案 0 :(得分:1)
构建代码ViewBag.Parameters是一个字符串类型,因此它将作为控制器名称。试试这个
ViewBag.Parameters = new { needSearch = true };
@Url.Action("actionname", ViewBag.Parameters);