【发布时间】:2014-03-07 16:50:52
【问题描述】:
我已经梳理了文档,但找不到我要查找的内容。我正在寻找的可能是不可能的,这对我来说是新的领域。
我是第一次使用MVCSiteMapProvider。我需要确保搜索引擎可以抓取我的 asp.net mvc 站点中动态创建的页面列表。
视图是基于两个参数创建的:title 和 id。吐出的 url 在自定义路由中定义,如下所示:
routes.MapRoute(
"JobResults", // Route name
"JobSearch/{title}-{id}", // URL with parameters
new { controller = "JobSearch", action = "Job" }, // Parameter defaults
new[] { "MyApp.Web.Controllers" }
);
所以当我点击一个链接时,它会带我到:localhost:43736/JobSearch/chief-talent-officer-1710
我设置了站点地图插件并弄乱了 .sitemap 文件,所以它看起来像这样:
<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0"
xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0 MvcSiteMapSchema.xsd">
<mvcSiteMapNode title="Home" controller="Home" action="Index" changeFrequency="Always" updatePriority="Normal">
<mvcSiteMapNode title="About" controller="Home" action="About"/>
<mvcSiteMapNode title="HiringSolutions" controller="Home" action="HiringSolutions"/>
<mvcSiteMapNode title="Privacy Policy" controller="Home" action="Privacy"/>
<mvcSiteMapNode title="Terms" controller="Home" action="Terms" />
<mvcSiteMapNode title="Search" controller="JobSearch" action="Index" changeFrequency="Always" updatePriority="Normal">
<mvcSiteMapNode title="Job" controller="JobSearch" action="Job" changeFrequency="Always" updatePriority="High" route="JobResults"/>
</mvcSiteMapNode>
</mvcSiteMapNode>
</mvcSiteMap>
为了看看它会带来什么,我在我的索引页面上称之为:@Html.MvcSiteMap().Menu(false, true, true)。它呈现了这个:
- 首页
- 关于
- 招聘解决方案
- 隐私政策
- 条款
- 搜索
- 工作
我怎样才能让它动态地做到这一点?:
- 首页
- 关于
- 招聘解决方案
- 隐私政策
- 条款
- 搜索
- 工作
- /JobSearch/chief-talent-officer-1710
- /JobSearch/another-one-1234
- /JobSearch/another-one-1235
- /JobSearch/another-one-1236
- /JobSearch/another-one-1237
- 工作
一旦我有了它(如果可能的话),这是否会在我的网站根目录中创建一个 sitemap.xml 文件,还是我需要做一些事情来让机器人可以访问它?
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-mvc-5 mvcsitemapprovider