Как установить динамический заголовок @Html.ActionLink из контроллера?

#asp.net #asp.net-mvc #dynamic #viewbag #html.actionlink

#asp.net #asp.net-mvc #динамический #viewbag #html.actionlink

Вопрос:

у меня есть

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

Теперь я хочу установить каждый идентификатор из контроллера

например:

 @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));
        }
  

Ответ №1:

Вам нужно преобразовать RemoveSelectedTitle в строку. Поскольку вы используете Viewbag, это динамический объект, и он не знает, что RemoveSelectedTitle является строкой. Ваша ActionLink должна быть чем-то вроде:

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

Ответ №2:

При использовании ViewBag в сочетании с HTML-помощниками, которые ожидают строки, вы должны преобразовать в строку следующим образом:

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

Это потому, что компилятор не знает тип ViewBag.Удалить выбранный заголовок из-за того, что ViewBag является динамическим типом.

Ответ №3:

Я пытался объединить некоторый жестко закодированный текст и значение int из ViewBag и обнаружил, что этот синтаксис работает:

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