【问题标题】:Can I use @Viewbag... inside of webgrid column ActionLink format instead of hard-coding the name我可以在 webgrid 列 ActionLink 格式中使用 @Viewbag... 而不是硬编码名称吗
【发布时间】:2017-12-17 17:23:29
【问题描述】:

根据用户级别,我有几个要链接的页面。 示例:级别 1 到 pageA,级别 2 到 pageB,等等。 在控制器内部,我将 Viewbag.page 设置为哪个页面。

webgrid在创建下面的列时,有没有办法将“actionName”替换为Viewbag.page的内容?

@grid.GetHtml(
columns: grid.Columns(
grid.Column("filename", format: @<text> @Html.ActionLink((string)item.filename, "actionName", "controllerName", new { id = item.id}, null) </text> ),

【问题讨论】:

  • 你的意思是说,它应该根据级别动态填充,而不是硬编码“ActionName”?
  • HEGDE,是的。那就是我的意思。对不起,我没有说清楚。我应该去睡觉而不是试图在凌晨 2 点工作。

标签: asp.net-mvc razor webgrid actionlink


【解决方案1】:

如果您是从控制器重定向,那么最好使用 TempData 而不是 ViewBag,因为 ViewBag 在 POST 之后将为空。

这里是在cshtml中使用动态数据的代码sn-p:

@{ 

var actionName = TempData["actionName"];
}

@Html.ActionLink((string)item.filename, actionName, "controllerName", new { id = item.id }, null) )

您应该根据您的等级从控制器中为TempData["actionName"]; 设置值。

【讨论】:

  • 谢谢你,赫格德。
猜你喜欢
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 2023-01-17
  • 1970-01-01
  • 1970-01-01
  • 2016-11-04
  • 2022-01-26
  • 1970-01-01
相关资源
最近更新 更多