Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在控制器中使用FOREACH语句获取用于站点地图的记录_C#_Asp.net Mvc - Fatal编程技术网

C# 在控制器中使用FOREACH语句获取用于站点地图的记录

C# 在控制器中使用FOREACH语句获取用于站点地图的记录,c#,asp.net-mvc,C#,Asp.net Mvc,我正在使用一个创建站点地图XML的教程。然而,我正在改变一些事情,所以它使用数据库而不是当前代码。我在控制器中放置了一个Foreach语句,以检索列表形式的信息,代码似乎还可以。动作中的其他代码似乎不喜欢它。我确信这件事正看着我的脸,但我没有看到。是否有人可以告诉我可能是什么问题,或者我的代码中是否缺少某些内容 以下是控制器操作:(我将原始代码留在其中,但被注释掉了) public ActionResult GenerateSiteMap() { var sitemapItems=新列表{ fo

我正在使用一个创建站点地图XML的教程。然而,我正在改变一些事情,所以它使用数据库而不是当前代码。我在控制器中放置了一个Foreach语句,以检索列表形式的信息,代码似乎还可以。动作中的其他代码似乎不喜欢它。我确信这件事正看着我的脸,但我没有看到。是否有人可以告诉我可能是什么问题,或者我的代码中是否缺少某些内容

以下是控制器操作:(我将原始代码留在其中,但被注释掉了)

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个。