- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据 Google 在 Video sitemaps 中的定义,有一些xml标签应该添加到视频的站点地图中,应该是这样的:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url>
<loc>http://www.example.com/videos/some_video_landing_page.html</loc>
<video:video>
<video:thumbnail_loc>http://www.example.com/thumbs/123.jpg</video:thumbnail_loc>
<video:title>Grilling steaks for summer</video:title>
<video:description>Alkis shows you how to get perfectly done steaks every
time</video:description>
<video:content_loc>http://www.example.com/video123.mp4</video:content_loc>
<video:player_loc autoplay="ap=1">
http://www.example.com/videoplayer.mp4?video=123</video:player_loc>
<video:duration>600</video:duration>
<video:expiration_date>2009-11-05T19:20:30+08:00</video:expiration_date>
<video:rating>4.2</video:rating>
<video:view_count>12345</video:view_count>
<video:publication_date>2007-11-05T19:20:30+08:00</video:publication_date>
<video:family_friendly>yes</video:family_friendly>
<video:restriction relationship="allow">IE GB US CA</video:restriction>
<video:gallery_loc title="Cooking Videos">http://cooking.example.com</video:gallery_loc>
<video:price currency="EUR">1.99</video:price>
<video:requires_subscription>yes</video:requires_subscription>
<video:uploader info="http://www.example.com/users/grillymcgrillerson">GrillyMcGrillerson
</video:uploader>
<video:live>no</video:live>
</video:video>
最佳答案
好吧,我还不能使用 mvcsitemapprovider 来实现我的目标,但是我做了这个临时解决方案,我正在尝试从中制作 nuget 包或将其作为功能添加到 mvcsitemapprovider 包中,这是我添加到 ContentResult 的代码在 Controller 中,当 url 看起来像这样“/videoSiteMap.xml”时,我更改了我的 routeConfig 以调用此方法:
public ContentResult VideoSiteMap()
{
XmlDocument xmlDoc = new XmlDocument();
using (XmlWriter writer = xmlDoc.CreateNavigator().AppendChild())
{
//writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
writer.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");
// add namespaces
writer.WriteAttributeString("xmlns", "video", null, "http://www.google.com/schemas/sitemap-video/1.1");
List<VideoSiteMap> siteMapp = null;
siteMapp = ServiceHelper.GetGoogleSiteMap();//I invoked a service
//you can use a fake loop instead: for (int i = 0; i < 10; i++)
foreach( var content in siteMapp)
{
writer.WriteStartElement("url");
// required
writer.WriteElementString("loc", "http://example.com/myplayer.aspx");
writer.WriteStartElement("video", "video", null);
// start:optional
writer.WriteElementString("video", "thumbnail_loc", null, "http://www.example.com/thumbs/123.jpg");
writer.WriteElementString("video", "title", null, "");
writer.WriteElementString("video", "description", null, "Alkis shows you how to get perfectly done steaks every time");
writer.WriteElementString("video", "content_loc", null, "http://www.example.com/video123.mp4");
writer.WriteStartElement("video", "player_loc", null);
writer.WriteAttributeString("autoplay", "ap=1");
writer.WriteString("http://www.example.com/videoplayer.mp4?video=123");
writer.WriteEndElement(); // video:player_loc
// end:optional
writer.WriteElementString("video", "duration", null, "100");
writer.WriteElementString("video", "expiration_date", null, "2009-11-05T19:20:30+08:00");
writer.WriteElementString("video", "rating", null, "4.2");
writer.WriteElementString("video", "view_count", null, "12345");
writer.WriteElementString("video", "publication_date", null, "2007-11-05T19:20:30+08:00");
writer.WriteElementString("video", "family_friendly", null, "yes");
writer.WriteElementString("video", "category", null, "Cooking");
writer.WriteStartElement("video", "restriction", null);
writer.WriteAttributeString("relationship", "allow");
writer.WriteString("IE GB US CA");
writer.WriteEndElement();
writer.WriteStartElement("video", "gallery_loc", null);
writer.WriteAttributeString("title", "Cooking Videos");
writer.WriteString("http://cooking.example.com");
writer.WriteEndElement();
writer.WriteStartElement("video", "price", null);
writer.WriteAttributeString("currency", "EUR");
writer.WriteString("1.99");
writer.WriteEndElement();
writer.WriteElementString("video", "requires_subscription", null, "yes");
writer.WriteStartElement("video", "uploader", null);
writer.WriteAttributeString("info", "http://www.example.com/users/grillymcgrillerson");
writer.WriteString("GrillyMcGrillerson");
writer.WriteEndElement();
writer.WriteElementString("video", "live", null, "No");
writer.WriteEndElement(); // video:video
writer.WriteEndElement(); //url
}
writer.WriteEndElement(); //urlset
writer.WriteEndDocument();
writer.Close();
}
var stringWriter = new StringWriter();
var xmlTextWriter = XmlWriter.Create(stringWriter);
xmlDoc.WriteTo(xmlTextWriter);
xmlTextWriter.Flush();
return Content(stringWriter.GetStringBuilder().ToString().replace("utf-16","utf-8"), "text/xml", Encoding.UTF8);
}
关于mvcsitemapprovider - 如何使用 mvcsitemapprovider 将自定义 xml 标签添加到 sitemap.xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45280696/
根据 Google 在 Video sitemaps 中的定义,有一些xml标签应该添加到视频的站点地图中,应该是这样的: http://www.example.com/videos/some_
目前,我有一个 Controller与 Index()需要授权的 Action 方法: public partial class CustomerController : BaseDocumentSt
如果当前 session IP 在以色列,我想从菜单中隐藏某个页面。这是我尝试过的方法,但实际上菜单项没有出现在任何地方。 我测试了 GeoIP 提供商,它似乎工作正常,我做错了什么? 下面是我如何创
我想用 CSS 类标记当前节点及其父节点。我四处搜索并找到了这些链接: http://mvcsitemap.codeplex.com/discussions/257786 http://mvcsite
我正在尝试为我的站点开发站点地图,以便在需要时维护 URL 参数。我正在使用 MvcSiteMapProvider 并尝试使用动态节点来保存各种节点的路由数据。但是,我遇到的问题是动态节点的子节点。当
我有一个可以采用可选 id 参数的操作方法。 public ActionResult Details(int id = 0) {...} 以及一个应该链接到具有空 ID 的操作方法的站点节点。 不
现在我有 Mvc.sitemap xml 文件,其中包含以下数据: 我想将所有这些节点存储在数据库中,并且只有一个非根节点,如下所示:
Mvc 5、.Net 4.5 我按如下方式实现 MvcSiteMapNodeAttribute: [MvcSiteMapNode(Title="Running Events", ParentKey="
MvcSiteMapProvider 似乎会自动缓存。是否有禁用缓存的机制?我们编写了自定义缓存例程,我想通过这些例程运行它,而不是依赖任何内置的缓存机制。 最佳答案 尝试在呈现菜单或站点地图之前调用
我正在使用 wcf 服务数据层开发类似网上商店的 asp.net mvc 4 网站。我的应用程序是用主类别、子类别和产品构建的。每个产品只能属于一个子类别,我的网址是这样的: /maincategor
我希望能够显示当前节点的父节点的标题。 站点地图: 因此,在“第 1 页”上,我可以使用以下方法显示标题(某页): Html.MvcSiteMap().Si
尝试运行/调试应用程序时出现以下错误 CS0246:找不到类型或 namespace 名称“MvcSiteMapProvider”(您是否缺少using指令或程序集引用?) 在我的Web.Config
我在安装 mvc 的 sitemapprovider 时遇到此错误: Install-Package : Updating 'Microsoft.AspNet.Razor 3.2.2' to 'Mic
在我的 MVC3 项目中,我安装了 Maartenba 的 MvcSiteMapProvider v.3.2.1,并且我创建了一个非常简单的静态两级菜单。下面是概念图结构。 - Home - Memb
我尝试以几乎任何方式本地化 MvcSiteMapProvider,但我不明白。正如我发现的,当您使用 app_globalresources 文件夹时它可以工作,但如果您使用 MVC,则这不是一个选项
我已经安装了 MvcSiteMapProvider v4,现在我想动态加载站点地图。我的需求很简单——根据当前登录的用户角色,例如在每个页面请求上加载 XML 站点地图。 AdminSiteMap.x
我正在尝试构建这样的菜单: 作为引用,我正在使用这个库 https://github.com/behigh/bootstrap_dropdowns_enhancement @Html.MvcSiteM
我现在很喜欢通过 Nuget 使用制作精良的 MVCSiteMapProvider,但我遇到了障碍。 我正在尝试修改 @Html.MvcSiteMap().Menu() 助手的模板。我正在修改的文件是
您好,我已经在我的网络配置中添加了提供商,如下所示: 我在一个单独的类文件
tl;博士: 来自 MvcSiteMapProvider 的菜单有时无法在应用程序重新联机后呈现自身,即使代码运行并且在页面刷新后呈现菜单也是如此。 我在 ASP.NET MVC 3 项目中使用 Mv
我是一名优秀的程序员,十分优秀!