SORU
13 EYLÜL 2011, Salı


Başlarken Mutlak URL ASP.NET MVC bir Eylem fron

Bu muhtemelen aptal bir soru ama net bir göstergesi bulun. Sunucudaki bazı dosyaları Yedekleme yönetmek olan MVC3 web uygulaması POCO Dersim var. Genellikle bir yedekleme oluşturur ve indirmek için URL ile bir e-posta gönderir denetleyici için bir dosya adı döndürür. Bu gayet iyi çalışıyor, ama mutlak URL gönderilmek üzere inşa edemem. İşlevi ne olursa olsun kullanırım, hep göreli bir URL, gibi/Backup/TheFile.zipörneğin yerinehttp://www.somesite.com/Backup/TheFile.zip. Denedim:

VirtualPathUtility.ToAbsolute("~/Backup/SomeFile.zip");
HttpRuntime.AppDomainAppVirtualPath   "/Backup/SomeFile.zip";
Url.Content("~/Backup/SomeFile.zip");

ama hepsi gibi bir şey dönmek/Backup/SomeFile.zip. Herhangi bir fikir?

CEVAP
23 Mart 2012, Cuma


Aşağıdaki bakabilirsin:

var urlBuilder =
    new System.UriBuilder(Request.Url.AbsoluteUri)
        {
            Path = Url.Action("Action", "Controller"),
            Query = null,
        };

Uri uri = urlBuilder.Uri;
string url = urlBuilder.ToString();
// or urlBuilder.Uri.ToString()

Bu örnekte Url.Action() yerine, Url.Content() ya da herhangi bir yönlendirme yöntemi kullanabilirsiniz, ya da gerçekten sadece bir yol geçmektedir.

Ama eğer URLController ActionBir oraya giderse daha kompakt bir şekilde

var contactUsUriString =
    Url.Action("Contact-Us", "About",
               routeValues: null /* specify if needed */,
               protocol: Request.Url.Scheme /* This is the trick */);

Hile burada herhangi bir yönlendirme yöntemi çağrılırken protocol/düzeni belirtin sonra, mutlak bir URL olsun.Mümkünse bunu tavsiye ederimama senin de ihtiyacın olursa, ilk örnekte daha genel bir yolu var.

Ayrıntılar burada blog var:
http://gurustop.net/blog/2012/03/23/writing-absolute-urls-to-other-actions-in-asp-net-mvc/

Meligy’s AngularJS & Web Dev Goodies Newsletter elde edilir

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AutoklubZAPRESIC

    AutoklubZAPR

    17 Mayıs 2011
  • Skrillex

    Skrillex

    6 NİSAN 2010
  • WePlayWeWatch

    WePlayWeWatc

    3 Temmuz 2013