我目前正在使用Entity Framework 5和MVC 5从视图中提取url列表。我有视图填充所有链接但我需要每个链接显示他们的'LinkState'名称,就像我的模型一样,所以它会输出:
链接附加到LinkState。而不是查看foreach循环说State Link。我无法得到我的模型/控制来提取正确的信息。
存储库:
public class LinkRepository
{
private readonly LinkLibrary _entities = new LinkLibrary ();
public LinkRepository()
{
_entities = new LinkLibrary ();
}
public List<LinkModels> RetrieveStateLink(string year)
{
return
_entities.vw_URLLibrary.Where(s => s.YEAR.Equals(year) && s.URL_TYPE.Equals("United States")).Select(m => new LinkModels()
{
UrlLink = m.LinkLocation
}).ToList();
}
}
模型
public class LinkModels
{
public string LinkYear { get; set; }
public string LinkState { get; set; }
public string UrlLink { get; set; }
public string LinkType { get; set; }
public List<string> ListOfUrls{ get; set; }
}
控制器
public ActionResult GetStateLinks()
{
var stateLink = new List<string>();
var model = rr.RetrieveStateLinks("2014").Select(m=> m.UrlLink).ToList();
foreach (var s in model)
{
stateLink.Add(s);
}
var rm = new LinkModels();
rm.ListOfUrls = stateLink;
return View(rm);
}
查看
@foreach (var item in Model.StateLinkList)
{
<td>
<a href="@item">State Link</a>
</td>
}
答案 0 :(得分:2)
您的问题是您返回的是字符串列表而不是LinkModel列表。我更新了存储库以返回网址和链接名称
删除了控制器中的一些不必要的代码并更新它以使用LinkObjects列表。然后更新视图以显示信息。
您必须更新视图@model List<LinkModels>
而不是@model List<string>
public class LinkRepository
{
private readonly LinkLibrary _entities = new LinkLibrary ();
public LinkRepository()
{
_entities = new LinkLibrary ();
}
public List<LinkModels> RetrieveStateLink(string year)
{
return
_entities.vw_URLLibrary.Where(s => s.YEAR.Equals(year) && s.URL_TYPE.Equals("United States")).Select(m => new LinkModels()
{
LinkState = m.LinkState,
UrlLink = m.LinkLocation
}).ToList();
}
}
public ActionResult GetStateLinks()
{
var stateLink = new List<LinkModels>();
var model = rr.RetrieveStateLinks("2014");
return View(model);
}
@foreach (var item in Model)
{
<td>
<a href="@item.UrlLink">@item.LinkState</a>
</td>
}
答案 1 :(得分:0)
<强>控制器强>
public ActionResult GetStateLinks()
{
var model = rr.RetrieveStateLinks("2014");
return View(model);
}
查看(将您的视图模型更改为LinkModel列表)
@foreach (var item in Model)
{
<td>
<a href="@item.UrlLink">@item.LinkState</a>
</td>
}