如何将ViewBag设置为Html.ActionLink字符串链接文本参数?

时间:2016-12-05 07:06:37

标签: asp.net-mvc

我是asp.net mvc的新用户并写下此代码:

@foreach (var item in ViewBag.MyList)
{
    @Html.ActionLink(@item.BookName, "Item", new {parentPartId = 0})
}


但在这一部分:

@item.BookName


得到这个错误:
enter image description here
我怎么能解决这个问题?谢谢大家。


这是我的控制器代码:

    List<StoreList> myList=new List<StoreList>();
    foreach (var VARIABLE in query_BookItem)
    {
        StoreList myClass = new StoreList();
        myClass.BookName = VARIABLE.BookName;
        myClass.BookText = VARIABLE.BookText;
        myList.Add(myClass);

    }
    ViewBag.MyList = myList;


2 个答案:

答案 0 :(得分:1)

ViewBagdynamic,您无法在dynamic方法中使用HtmlHelper。您需要先将项目转换为StoreList(假设您在视图中包含@using语句以指向StoreList所在的程序集

@foreach (StoreList item in ViewBag.MyList)
{
    @Html.ActionLink(item.BookName, "Item", new {parentPartId = 0})
}

@foreach (var item in ViewBag.MyList as List<StoreList>)
{
    @Html.ActionLink(item.BookName, "Item", new {parentPartId = 0})
}

@foreach (var item in ViewBag.MyList)
{
    @Html.ActionLink(((StoreList)item).BookName, "Item", new {parentPartId = 0})
}

答案 1 :(得分:0)

变化:

@Html.ActionLink(@item.BookName, "Item", new {parentPartId = 0})


对此并解决:

<a href="@Url.Action("Item", "Store", new {parentPartId = 0})">@item.BookName</a>