我有几个要链接的页面,具体取决于用户级别。 示例:级别1转到pageA,级别2转到pageB等。 在控制器内部,我将Viewbag.page设置为哪个页面。
当webgrid创建下面的列时,有没有办法用Viewbag.page的内容替换“actionName”?
@grid.GetHtml(
columns: grid.Columns(
grid.Column("filename", format: @<text> @Html.ActionLink((string)item.filename, "actionName", "controllerName", new { id = item.id}, null) </text> ),
答案 0 :(得分:1)
如果您从控制器重定向,那么最好选择TempData而不是ViewBag,因为ViewBag在POST后将为null。
这是一个在cshtml中使用动态数据的代码片段:
@{
var actionName = TempData["actionName"];
}
@Html.ActionLink((string)item.filename, actionName, "controllerName", new { id = item.id }, null) )
你应该根据你的等级从控制器设置TempData["actionName"];
的值。