asp.net-mvc – ASP.NET MVC中的动态网站地图
我正在尝试创建一个自动网站地图ActionResult,以输出有效的sitemap.xml文件。实际生成的文件不是一个问题,但我似乎不知道如何填充URL的系统中的列表。这里是我到目前为止的代码:
public ContentResult Sitemap() { XNamespace xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9"; XElement root = new XElement(xmlns + "urlset"); //some kind of foreach here to get the loc variable for all URLs in the site //for each URL in the collection,add it to the root element as here //root.Add( // new XElement("url",// new XElement("loc","http://google.com"),// new XElement("changefreq","daily"))); using (MemoryStream ms = new MemoryStream()) { using (StreamWriter writer = new StreamWriter(ms,Encoding.UTF8)) { root.Save(writer); } return Content(Encoding.UTF8.GetString(ms.ToArray()),"text/xml",Encoding.UTF8); } } 例如,假设我有两个控制器,每个控制器有两个与它们相关的动作: HelpController >编辑 AboutController >公司 我似乎不知道如何得到一个URL列表像: > http://localhost/help/edit 解决方法
我发布了一个自己做的答案下面。但这里是一个包,它开箱即用的MVC网站:
http://mvcsitemap.codeplex.com/(< - 旧网站,但有广泛的文档!) https://github.com/maartenba/MvcSiteMapProvider/wiki(< - 移动到新网站,缺少一些文档,而不是活动) 注意它做了很多事情: 所有上述点均由您编辑和配置的单个mvc.sitemap XML文件控制。我已经使用这个在一些项目现在做2或3的以上点。有它所有可配置在1个地方,并动态生成,是真的很好。 虽然我发现创建动态数据提供者的能力有点麻烦(并严重违反任何类型的IoC你希望做),它确实得到工作完成和缩放,一旦你绕过他们的缓存和使用自己的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 我应该继续研究MVC 1.0上的项目还是停止学习MVC
- entity-framework – 从Entity Framework 6升级到EF Core
- ASP.NET Core知多少(6):VS Code联调Angular + .NetCore
- asp.net – 更新查询似乎删除了备注字段
- asp.net – 访问listview的edititemtemplate中的控件
- asp.net-mvc – ModelState.AddModelError编码HTML
- asp.net – “2015年4月20日Google帐户的OpenID2已经消失”
- asp.net-mvc – ASP.NET MVC路由冲突 – 输入变量的null值
- asp.net – 从SignalR Hub调用方法的问题.调用失败.承诺遭到
- asp.net是否可以防止SQL注入攻击
- asp.net – 对齐和填充为asp:CheckBoxList
- asp.net-mvc – 将多个参数传递给控制器???
- asp.net-mvc – jQuery脚本包含在mvc 4模板的页面
- asp.net – 在自动生成的GridView列中防止HTML编
- 如何确定使用32位与64位ASP.NET?
- ASP.Net发布超时
- ASP.NET MVC 3中DropDownListFor的不显眼验证问题
- 基于EntityFramework 6 Code First实现简单的多租
- asp.net – BuildManager.GetReferencedAssembli
- ASP.NET MVC:如何将多个对象传输到View方法?