2016-01-25 83 views
-2

我目前正在使用實體框架5和MVC 5從視圖中拉出url列表。我需要從該數據庫視圖填充視圖中的url列表。目前,我有:如何將字符串列表轉換爲多個url鏈接?

庫:

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.ListOfUrls); 
    } 

查看

<ol> 
    @foreach (var item in Model.ListOfUrls) 
    { 
     <li> 
      @Html.ActionLink("state", "GetStateLinks", new { mystring = item }) 
     </li> 
    } 
</ol> 

我不能確定如何將此傳遞到視圖它會顯示:

Alabama.aspx Georgia.aspx

回答

0

你只要簡單地寫

<ol> 
    @foreach (var item in Model.ListOfUrls) 
    { 
     <li> 
      <a href="@item">GetStateLinks</a> 
     </li> 
    } 
</ol> 

沒有必要使用Html.ActionLink,因爲它的目的是直接鏈接到MVC控制器操作,而不是URL。

+0

我只是試過這個,現在我得到這個錯誤: 傳遞到字典中的模型項是類型'System.Collections.Generic.List'1 [System.String]',但這個字典需要一個模型「LinkLibraryProject.Models.LinkModels」類型的項目。 – cxwilson

+0

@masta_coda哦,我錯過了。你需要改變'返回查看(rm.ListOfUrls)'成簡單的'返回查看(rm)' – Rob

+1

它的工作!謝謝!!! – cxwilson