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()} });