【问题标题】:How to show LINQ data in view in asp.net mvc?如何在 asp.net mvc 中显示 LINQ 数据?
【发布时间】:2012-05-28 17:37:54
【问题描述】:

我正在使用一个名为 scrap 的操作

public ActionResult Scrap()
 {
    var webGet = new HtmlWeb();
    var document = webGet.Load(Url);
    var wikians = from info in document.DocumentNode.SelectNodes("//div[@id='results']")
                  from link in info.SelectNodes("p//a").Where(x => x.Attributes.Contains("href"))
                  from content in info.SelectNodes("p").Where(y => y.HasAttributes != true)
                  select new
                    {
                      LinkURL = link.Attributes["href"].Value,
                      Text = content.InnerText                             
                    };

 return View();
}

现在我想在视图中显示所有 LinkURL 和 Text。为此,我尝试使用一个名为 WikiModel 的模型作为

public class WikiModel
{
  public string url { get; set; }
  public string content { get; set; }
}

现在我该如何走得更远,以便在我的视图中显示所有信息。我们可以使用wikimodel 来做到这一点,但是如何在wikimodel 中添加所有scrap 操作的数据?我不知道如何操纵他的select newLINQ 将数据保存在模型中。

【问题讨论】:

    标签: c# asp.net asp.net-mvc linq razor


    【解决方案1】:

    首先,您需要从查询中返回 WikiModel 对象的列表:

     var wikians = from info in document.DocumentNode.SelectNodes("//div[@id='results']")
                      from link in info.SelectNodes("p//a").Where(x => x.Attributes.Contains("href"))
                      from content in info.SelectNodes("p").Where(y => y.HasAttributes != true)
                      select new WikiModel
                        {
                          url = link.Attributes["href"].Value,
                          content = content.InnerText                             
                        };
    

    您可以将其作为Model 传递给视图:

    return View(wikians);
    

    在您看来,您现在可以通过Model 访问此列表。

    【讨论】:

      【解决方案2】:
      public ActionResult Scrap()
       {
          var webGet = new HtmlWeb();
          var document = webGet.Load(Url);
          var wikians = from info in document.DocumentNode.SelectNodes("//div[@id='results']")
                        from link in info.SelectNodes("p//a").Where(x => x.Attributes.Contains("href"))
                        from content in info.SelectNodes("p").Where(y => y.HasAttributes != true)
                        select new WikiModel
      
                          {
                            LinkURL = link.Attributes["href"].Value,
                            Text = content.InnerText                             
                          };
      
       return View(wikians);
      }
      

      【讨论】:

      • 你为什么要投到List<WikiModel>
      • 是的,创建了与投射相关的问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-06
      • 1970-01-01
      相关资源
      最近更新 更多