2016-04-11 7 views
0

İstek yönlendirme isteği istekte bulunma isteğinden farklıysa, tüm URL'lerin bir görünümde kesin URL'ler şeklinde olmasını istiyorum.Tüm içerik ve eylem URL'lerini, görünüm sayfasını değiştirmeden mutlak URL'ler olarak gösterme

sitesi http://www.hostsite.com

@using (Ajax.BeginForm("Save", new AjaxOptions {})) 
{ 
    @Html.ActionLink("More..", "More") 
    <img src="~/Content/img.jpg" /> 
    <input type="submit" value="Save" /> 
} 

<form action="http://www.example.com/controller/Save" data-ajax="true" id="form0" method="post"> 
    <a href="http://www.example.com/controller/More">More...</a> 
    <img src="http://www.example.com/Content/img.jpg" /> 
    <input type="submit" value="Save" /> 
</form> 

Not olarak gerektiği de html "~ /" url'lerin kullanımını

viewpage hale aşağıdakilerden hangisi sonra http://www.example.com/controller/action içerik çeker bir sayfası vardır Yani eğer mutlak olmak

Mümkünse, fazladan yardımcılar oluşturmak yerine bazı temel URL kodlarını geçersiz kılarak bunu başarmak isterim.

mvc'nin url çıktı işlevini geçersiz kılmak ve görünüm sayfalarının kendilerinde (özel yardımcılar kullanmak gibi) tek bir ayrıntıyı değiştirmek zorunda kalmamak mümkün mü? Öyleyse, bu çıktı davranışını geçersiz kılmak için kullanabileceğim kanca noktaları nerede?

cevap

0

İstediğiniz istenen URL'yi dönecektir

public static HtmlString CustomActionLink(this HtmlHelper htmlHelper 
             ,string linkText,string action,string controller) 
    {   
     return new HtmlString(String.Format("<a href=http://www.example.com/{0}/{1}>{2}</a>", controller, action,linkText)); 
    } 

Bu aşağıdaki gibi özel Actionlink yöntemi oluşturabilirsiniz.

Bu Benzer şekilde ActionResult diğer aşırı ve resimler için de yardımcı yöntemi oluşturabilir çıktı üretmesi

DemoLink

<a href="http://www.example.com/Home/Index">DemoLink</a> 
istenen üretecektir

@Html.CustomActionLink("DemoLink","Index","Home") 

Görüntüle içinde kullanır.

+0

Özellikle 'yardımcı' yöntemleri oluşturmak istemiyorum. ViewEngine ve ViewPage gibi ilişkili sınıfların davranışını geçersiz kılmak istiyorum. –

+0

Görünüm motoru görünümleri görüntülemekten sorumludur, görüşlerin yolunu geçersiz kılabiliriz, Fiziksel konumlarını değiştirebiliriz, örneğin sanal dosya konumlarında örneğin veritabanı sunucusunda veya fiziksel dosya deposu yerine DLL'de bile yerleştirebiliriz . Ancak, elde etmeye çalıştığınız davranış, görünüm motorunun sorumluluğunda olmayan bir şeydir. Kontroller nasıl oluşturulacak ve kontroller için hangi HTML üretilecek, yardımcı sınıflar tarafından yönetilecek ve yönetilecektir. Yani aynı şeyi geçersiz kılmalı. –

+0

'' yardımcı tarafından oluşturulmaz –