C# 在控制器中使用FOREACH语句获取用于站点地图的记录
我正在使用一个创建站点地图XML的教程。然而,我正在改变一些事情,所以它使用数据库而不是当前代码。我在控制器中放置了一个Foreach语句,以检索列表形式的信息,代码似乎还可以。动作中的其他代码似乎不喜欢它。我确信这件事正看着我的脸,但我没有看到。是否有人可以告诉我可能是什么问题,或者我的代码中是否缺少某些内容 以下是控制器操作:(我将原始代码留在其中,但被注释掉了)C# 在控制器中使用FOREACH语句获取用于站点地图的记录,c#,asp.net-mvc,C#,Asp.net Mvc,我正在使用一个创建站点地图XML的教程。然而,我正在改变一些事情,所以它使用数据库而不是当前代码。我在控制器中放置了一个Foreach语句,以检索列表形式的信息,代码似乎还可以。动作中的其他代码似乎不喜欢它。我确信这件事正看着我的脸,但我没有看到。是否有人可以告诉我可能是什么问题,或者我的代码中是否缺少某些内容 以下是控制器操作:(我将原始代码留在其中,但被注释掉了) public ActionResult GenerateSiteMap() { var sitemapItems=新列表{ fo
public ActionResult GenerateSiteMap()
{
var sitemapItems=新列表{
foreach(db.Sitemaps中的变量项)
{
新建SitemapItem(Url.Action(items.Location),变更频率:SitemapChangeFrequency.Daily,优先级:(items.priority),lastModified:(items.lastModified));
}
//新建SitemapItem(Url.Action(“索引”,“主页”),更改频率:SitemapChangeFrequency。始终,优先级:1.0),
//新建SitemapItem(Url.Action(“about”,“home”),lastModified:DateTime.Now),
//新建SitemapItem(PathUtils.CombinePath(Request.Url.GetLeftPart(UriPartial.Authority),“/home/list”))
}
SitemapGenerator sg=新建SitemapGenerator();
var doc=sg.GenerateSiteMap(sitemapItems);
doc.Save(Server.MapPath(“~/Sitemap.xml”);
返回重定向到操作(“索引”、“主页”);
}
我得到的结果是,并非所有代码路径都返回值
谢谢你的帮助
更新:
可能是这个吗?这似乎消除了错误
public ActionResult GenerateSiteMap()
{
var sitemapItems = new List<SitemapItem>();
foreach (var items in db.Sitemaps)
{
new SitemapItem(Url.Action(items.Location), changeFrequency: SitemapChangeFrequency.Daily, priority: (items.Priority), lastModified: (items.LastModified));
}
//new SitemapItem(Url.Action("index", "home"), changeFrequency: SitemapChangeFrequency.Always, priority: 1.0),
//new SitemapItem(Url.Action("about", "home"), lastModified: DateTime.Now),
//new SitemapItem(PathUtils.CombinePaths(Request.Url.GetLeftPart(UriPartial.Authority), "/home/list"))
SitemapGenerator sg = new SitemapGenerator();
var doc = sg.GenerateSiteMap(sitemapItems);
doc.Save(Server.MapPath("~/Sitemap.xml"));
return RedirectToAction("Index", "Home");
}
public ActionResult GenerateSiteMap()
{
var sitemapItems=新列表();
foreach(db.Sitemaps中的变量项)
{
新建SitemapItem(Url.Action(items.Location),变更频率:SitemapChangeFrequency.Daily,优先级:(items.priority),lastModified:(items.lastModified));
}
//新建SitemapItem(Url.Action(“索引”,“主页”),更改频率:SitemapChangeFrequency。始终,优先级:1.0),
//新建SitemapItem(Url.Action(“about”,“home”),lastModified:DateTime.Now),
//新建SitemapItem(PathUtils.CombinePath(Request.Url.GetLeftPart(UriPartial.Authority),“/home/list”))
SitemapGenerator sg=新建SitemapGenerator();
var doc=sg.GenerateSiteMap(sitemapItems);
doc.Save(Server.MapPath(“~/Sitemap.xml”);
返回重定向到操作(“索引”、“主页”);
}
不能将foreach
放在这样的对象初始值设定项中,但可以使用Linq
返回站点地图的IEnumerable
,如:
// This assumes your code to initialize a sitemap is otherwise correct
var sitemapItems = db.Sitemaps
.Select(sitemap => new SitemapItem(Url.Action(sitemap.Location),
changeFrequency: SitemapChangeFrequency.Daily,
priority: sitemap.Priority, lastModified: sitemap.LastModified))
.ToList();
编辑后,您几乎完全正确。在foreach
循环中,您需要将站点地图添加到列表中,因此这是另一种方法:
var sitemapItems = new List<SitemapItem>();
foreach (var items in db.Sitemaps)
{
sitemapItems.Add(new SitemapItem(Url.Action(items.Location),
changeFrequency: SitemapChangeFrequency.Daily, priority: (items.Priority),
lastModified: (items.LastModified)));
}
var sitemapItems=new List();
foreach(db.Sitemaps中的变量项)
{
添加(新的SitemapItem(Url.Action(items.Location)),
更改频率:SitemapChangeFrequency.Daily,优先级:(items.priority),
lastModified:(items.lastModified));
}
不能将foreach
放在这样的对象初始值设定项中,但可以使用Linq
返回站点地图的IEnumerable
,如:
// This assumes your code to initialize a sitemap is otherwise correct
var sitemapItems = db.Sitemaps
.Select(sitemap => new SitemapItem(Url.Action(sitemap.Location),
changeFrequency: SitemapChangeFrequency.Daily,
priority: sitemap.Priority, lastModified: sitemap.LastModified))
.ToList();
编辑后,您几乎完全正确。在foreach
循环中,您需要将站点地图添加到列表中,因此这是另一种方法:
var sitemapItems = new List<SitemapItem>();
foreach (var items in db.Sitemaps)
{
sitemapItems.Add(new SitemapItem(Url.Action(items.Location),
changeFrequency: SitemapChangeFrequency.Daily, priority: (items.Priority),
lastModified: (items.LastModified)));
}
var sitemapItems=new List();
foreach(db.Sitemaps中的变量项)
{
添加(新的SitemapItem(Url.Action(items.Location)),
更改频率:SitemapChangeFrequency.Daily,优先级:(items.priority),
lastModified:(items.lastModified));
}
感谢您的输入。我将尝试一下,并在它正常运行时将其标记为正确。如果没有,我会添加评论。结尾缺少一个括号。应该有3个。谢谢你的意见。我将尝试一下,并在它正常运行时将其标记为正确。如果没有,我会添加评论。结尾缺少一个括号。应该有3个。