如何从Controller设置@ Html.ActionLink的动态标题?

时间:2011-06-09 12:31:27

标签: asp.net asp.net-mvc dynamic viewbag html.actionlink

我有

@Html.ActionLink("Remove 1034, 1035, 1036", "RemoveSelected")

现在我想从Controller

设置每个id

例如:

@Html.ActionLink(ViewBag.RemoveSelectedTitle, "RemoveSelected") //this is not work

// GET: /TabMaster/
        public ActionResult Index()
        {
            ViewBag.RemoveSelectedTitle = "100,101,102";
            return View(_tabmasterService.GetTabMasterList(10, 1));
        }

3 个答案:

答案 0 :(得分:34)

您需要将RemoveSelectedTitle强制转换为字符串。当您使用Viewbag时,这是一个动态对象,并且不知道RemoveSelectedTitle是一个字符串。你的ActionLink应该是这样的:

@Html.ActionLink((string)ViewBag.RemoveSelectedTitle, "RemoveSelected")

答案 1 :(得分:10)

将ViewBag与期望字符串的HTML帮助器结合使用时,必须强制转换为字符串,如下所示:

@Html.ActionLink((string)ViewBag.RemoveSelectedTitle, "RemoveSelected")

这是因为由于ViewBag是动态类型,编译器不知道ViewBag.RemoveSelectedTitle的类型。

答案 2 :(得分:0)

我试图连接一些硬编码文本和ViewBag中的int,并发现这种语法有效:

@Html.ActionLink((string)("Remove Selected - # " + ViewBag.RemoveSelectedNumber.ToString()), "RemoveSelected")