Asp.net mvc 3 在asp.net mvc中获取操作内的Uri
下面是控制器的方法Asp.net mvc 3 在asp.net mvc中获取操作内的Uri,asp.net-mvc-3,rss,Asp.net Mvc 3,Rss,下面是控制器的方法 public class FeedController : ControllerBase { public RssActionResult Rss() { //........ List<SyndicationItem> items = new List<SyndicationItem>(); var photosList = Facade.
public class FeedController : ControllerBase
{
public RssActionResult Rss()
{
//........
List<SyndicationItem> items = new List<SyndicationItem>();
var photosList = Facade.Photos.Get()
.Select(x =>
new SyndicationItem(
x.Title,
x.PreviewPath,
new Uri("http://site.com/"+CurrentLocale.CultureName+"/photos/show/" + x.ID + ".html"), x.ID.ToString(),
DateTime.UtcNow)
);
//........
return new RssActionResult() { Feed = feed };
}
}
如果URI是您自己站点上的资源,并且您为其定义了路由,则可以使用类似于以下内容的内容:
Url.RouteUrl(new RouteValueDictionary{ {"controller","Photo"}, {"action","show"}, {"Id",x.ID} })
RouteUrl方法有几个重写
否则,如果该URI是某个其他站点上的资源,则只需将URI格式存储在web.config中,并使用string.format(urlFormatFromWebConfig,x.ID)生成URL
编辑:更具体,现在您已更新了路线:
new Uri(Url.RouteUrl("Photos_Route", new RouteValueDictionary{ {"culture", CurrentLocale.CultureName}, {"ID", x.ID.ToString()} });
这个网址是什么?它是你网站的一部分吗?还是某个外部url?如果它是您站点的一部分,您的路线定义是什么样子的?或者它只是一个静态文件?
new Uri(Url.RouteUrl("Photos_Route", new RouteValueDictionary{ {"culture", CurrentLocale.CultureName}, {"ID", x.ID.ToString()} });