#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")