En iyi yanıtlayıcılar
Url Routing HTTP Error 404 - Not Found.

Soru
-
Merhaba, Websitemde url routing kullanmak istiyorum. Herşey tamam gibi görünüyor ancak yinede yönlendirme olmuyor.
HTTP yeniden yönlendirme aktif
Framework 4.0
web.configde aynı zamanda aşağıdaki kodlarda ekli
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="UrlRoutingModule"/>
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
<handlers>
<add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web,
Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"/>
</handlers>
</system.webServer>
olduğu halde hatta verdim yeni linkler Browserın sol alt kısmında doğru bir şekilde görünüyor ama tıkladığımda HTTP Error 404 - Not Found hatasını alıyorum.
.asax
void RegisterRoutes(System.Web.Routing.RouteCollection routes) { routes.MapPageRoute("Yazi","Yazi/{mid}/{MakaleBaslik}","~/Yazi.aspx"); }
Default.aspx
<h2 class="title"><a href='<%#string.Format("/Yazi/{0}/{1}",Eval("MakaleId"),Temizle.UrlCevir(Eval("MakaleBaslik").ToString())) %>'><%# Eval("MakaleBaslik")%></a></h2>
Yazi.cs
SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); SqlCommand sqlcmd = new SqlCommand("SELECT * from Makale Where MakaleId='" + Convert.ToInt32(RouteData.Values["mid"]) + "'", sqlcon); if (sqlcon.State == ConnectionState.Closed) { sqlcon.Open(); } SqlDataReader sdr = sqlcmd.ExecuteReader(); rptmak.DataSource = sdr; rptmak.DataBind(); sdr.Close(); if (sqlcon.State == ConnectionState.Open) { sqlcon.Close(); }
yardımcı olacak arkadaşlara teşekkür ederim.
- Düzenleyen ÖmerFaruk 4 Eylül 2013 Çarşamba 15:21
Yanıtlar
-
Keşke herkez sizin gibi açıklayıcı şekilde sorsa sorularını, teşekkürler.
Öncelikle herşey güzel yanlız şu kısım güzel olmamış;
<h2 class="title"><a href='<%#string.Format("/Yazi/{0}/{1}",Eval("MakaleId"),Temizle.UrlCevir(Eval("MakaleBaslik").ToString())) %>'><%# Eval("MakaleBaslik")%></a></h2>
bunun yerine;
<h2 class="title"><asp:Hyperlink NavigateUrl='<%# GetRouteUrl("Yazi", new { @mid= Eval("MakaleId"), @MakaleBaslik= Eval("MakaleBaslik")})%>' runat="server" Text='<%# Eval("MakaleBaslik")%>' /></h2>
şeklinde kullansanız daha şık olacak.
Esas soruna gelecek olursak; Debug ederken urel'de sanal klasör varmı? Yani http://localhost:5213/projeadı/Default.aspx gibi mi? Eğer böyle ise urlrouting dosyaları sanal dizin değilde ana dizinde arayacak ve çalışmayacaktır.
Solution Explorer > ProjeAdı'na tıkladıktan sonra Properties penceresinden sanal dizin yerine /(slash) yazdıktan sonra denermisiniz.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
Tüm Yanıtlar
-
Keşke herkez sizin gibi açıklayıcı şekilde sorsa sorularını, teşekkürler.
Öncelikle herşey güzel yanlız şu kısım güzel olmamış;
<h2 class="title"><a href='<%#string.Format("/Yazi/{0}/{1}",Eval("MakaleId"),Temizle.UrlCevir(Eval("MakaleBaslik").ToString())) %>'><%# Eval("MakaleBaslik")%></a></h2>
bunun yerine;
<h2 class="title"><asp:Hyperlink NavigateUrl='<%# GetRouteUrl("Yazi", new { @mid= Eval("MakaleId"), @MakaleBaslik= Eval("MakaleBaslik")})%>' runat="server" Text='<%# Eval("MakaleBaslik")%>' /></h2>
şeklinde kullansanız daha şık olacak.
Esas soruna gelecek olursak; Debug ederken urel'de sanal klasör varmı? Yani http://localhost:5213/projeadı/Default.aspx gibi mi? Eğer böyle ise urlrouting dosyaları sanal dizin değilde ana dizinde arayacak ve çalışmayacaktır.
Solution Explorer > ProjeAdı'na tıkladıktan sonra Properties penceresinden sanal dizin yerine /(slash) yazdıktan sonra denermisiniz.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
-
-
-
@Önay bey,
Aynı sorunu bende yaşıyorum. Sitenin ingilizce sürümünü yaptım. /en alt klasörde Url Routing çalışmıyor. 404 - File or directory not fund hatası veriyor. Url Routing metodu ana dizinde çalışıyor.
/en/index.aspx -- Çalışıyor
/en/index -- Hata veriyor.
Aşağıdaki 2 türüde denedim.
routes.MapPageRoute("AnasayfaRoute", "index", "~/en/index.aspx");
routes.MapPageRoute("AnasayfaRoute", "index", "~/index.aspx");
Yardımcı olabilirmisiniz. Şimdiden teşekkürler