我正在使用MVC,我有一个字符串列表,我想指向一个新页面。我正在使用Razor,我对MVC很新,似乎无法通过谷歌找到我的问题的答案。
我的列表可能包含以下内容:
"hello"
"goodbye"
"seeya"
我知道如何使用ViewBag将控制器中的字符串插入html页面,如果我有一组固定的字符串,我会使用以下actionlink:
@Html.ActionLink("viewedName", "ChemicalClass", new { mystring = "hello" })
@Html.ActionLink("viewedName", "ChemicalClass", new { mystring = "goodbye" })
@Html.ActionLink("viewedName", "ChemicalClass", new { mystring = "seeya" })
根据我的理解,这将生成3个链接,这些链接将重定向到子页面“ChemicalClass”,它将包含3个参数中的一个,具体取决于所点击的链接。
我的问题是,我怎么能这样做,但动态创建了ActionLinks,因为我不知道要创建多少链接,也不知道字符串的内容。我的目标是在网页上(优选地)以列表形式显示这些链接,例如:
<ol>
<li>
hello
</li>
<li>
goodbye
</li>
<li>
seeya
</li>
</ol>
列表中的每个元素都是链接而不仅仅是字符串。
答案 0 :(得分:5)
创建一个存储链接集合的视图模型
<强>模型强>
public class ViewModel
{
public IList<string> Links { get; set; }
}
在控制器中填充该模型
<强>控制器强>
public ActionResult Index()
{
var model = new ViewModel
{
Links = new List<string>
{
"Hello",
"Goodbye",
"Seeya"
}
};
return View(model);
}
最后你的观点 查看强>
@model MvcApplication1.Models.ViewModel
<ol>
@foreach (var item in Model.Links)
{
<li>
@Html.ActionLink("viewedName", "ChemicalClass", new { mystring = item })
</li>
}
</ol>
您的班级会将您的字符串和剃刀循环集合在一起,以生成您的链接。
答案 1 :(得分:0)
你可以使用这样的东西。
<ul>
@foreach (var x in Model)
{
<li><a href="#">@x.myString </a></li>
}
</ul>
答案 2 :(得分:0)
我的一个观点中有类似的内容:
@foreach (var item in Model.MyList)
{
<li>
@Html.ActionLink("Select", "ActionName", "Chemical", new {id = item.AdmNum}, new { @class = "label label-info"})
</li>
}