2008-12-02 16 views
11

Arama terimimin . (dönem) ile bittiği bir istekte bulunmaya çalıştığımda .Net MVC'den 404 yanıtı alıyorum. arama terimi içinde bir ., sadece onunla bitemez ileASP.NET MVC: Nasıl Arama Terimleri ile Güzergah Yapılır. (Dönem) sonunda

routes.MapRoute(
       "Json", 
       "Remote.mvc/{action}/{searchTerm}/{count}", 
       new { controller="Remote", count=10} 
      ); 

arama çalışıyor: Bu kullanıyorum yoldur. Bu arama isteğinin nasıl yönlendirileceği konusunda herhangi bir fikrin var mı?

+0

Benzer sorun burada: http://stackoverflow.com/questions/294495/semantic-urls-with-dots-in-net#328873 –

cevap

5

.NET 4.0 kullanıyorsanız, size web.config system.web bölümündeki bu bayrağı ayarlayabilirsiniz ve izin verilecektir:

<httpRuntime relaxedUrlToFileSystemMapping="true" /> 

bunu test ettik ve işe yarıyor. Haack'un bir açıklaması var.

+0

1, büyük! – Justin

+1

Kosau'dan da bahsedildiği gibi, sadece (.) Periyodu orta çizginin bir yerinde (örn./Abc/de/f) ve dönem bir dosya tipi ayırıcı gibi göründüğünde çalışmaz (örneğin/abc/de/fg). –

22

ben benzer bir sorunu çözdük (davanızı için düzeltilmiş) Ben System.webServer/işleyicileri bölüme aşağıdaki satırı ekledim (I gibi yollar/müzik/REM ile sorun vardı):

<add name="UrlRoutingHandler" type="System.Web.Routing.UrlRoutingHandler, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" path="Remote.mvc/*" verb="GET"/> 

<httpRuntime relaxedUrlToFileSystemMapping="true" /> 

nokta (.) eğik çizgi orta çifti bir yerdedir yalnızca çalışır yani

Ben de not ettik, (örneğin/abc/de/f) ve zaman periyodu görünüyor çalışmıyor Bir dosya tipi ayırıcı gibi (örneğin/abc/de/fg).

+0

Bulduğum tüm cevaplardan, ihtiyacım tam olarak benimsenen tek kişi sendin. Teşekkür ederim. –

+0

Çok teşekkürler! Bu aradığım cevapların birleşimiydi! –

+0

Bu tek işleyici olması gerekir mi? – quillbreaker