2009-03-10 19 views
1

dinamik bir kontrolör yöntemi standart adlandırma kuralını kullanarak karşı kullandığı Görünüm (görünüm aspx) değiştirmek için doğru yolu nedir kullanılacak.ASP.NET MVC - View anahtarlama dinamik

Ben ViewResult ve VIEWNAME ile ilgisi vardır tahmin ediyorum, ancak doğru sözdizimi nedir?

Güncelleme: Unuttuğum
bir şey ... Ortaya çıkan URL parçası olmayacak "eylem" ya da yöntem adı kalmadan bunu yapmanın bir yolu var mı? Örneğin,
Örneğin, ABD'deki tüm eyaletlerin bir listesini almak istiyordum. http://localhost/list/states

(eyalet adları basit bir listesini görüntüler) Ve ABD'de 50 büyük şehirlerin listesi var isteseydim.

Yani Liste adına bağlı olarak farklı "biçemleyicilerle" çekmek mümkün olmak istiyorum - http://localhost/list/largest-cities

(iki sütunlu tablo şehir ve nüfus görüntüler).

O çoklu görüntüleme/tek eylem yapalım mı?
URL'de Görünüm adını gizlemek için Routes kullanabilir miyim?
Buna yaklaşmanın en iyi yolu nedir?

+0

Belirli bir URL için dinamik olarak ayrı görünümler göstermenin kötü bir fikir olduğunu düşünüyorum, sadece kötü bir kod kokusu var. –

+0

Chad, aşağıya bakınız tvanfosson için. – BuddyJoe

+0

Eğer sadece bir liste ile ilgilenen bir şey üzerinde çalışıyorum ... Bir Google Base gibi bir tür - http://base.google.com – BuddyJoe

cevap

1

Sadece yöntemi kullanmak Seçmek için görünümün adını alır. Yine de dikkatli ol. Çoğu zaman muhtemelen yapmak istediğiniz şey farklı bir eyleme yönlendirmektir. Farklı bir görünüm döndürmek, URL'yi yönlendirme gibi değiştirmeyecektir.

+0

Peki, diyelim ki, URL'yi değiştirmeden Dizinde çok fazla yönlendirme yapabilir miyim? Bu durumda istediğim buydu. – BuddyJoe

+0

İstediğiniz bu olabilir, ancak genellikle bir hata varsa, paylaşılan bir hata görünümü döndüren farklı bir görünüm veya eylemin gerçekleştirildiği görünümü veren bir doğrulama sorunu döndürürüm. URL'leri RESTful olarak tutmayı ve görünümün içeriğe bağlı olmamasını tercih ediyorum. – tvanfosson

+0

+1 ve Yanıtla. Düşünce için iyi yemek. Her sayfada kullanacağım Grid/Table için bir biçimlendirmeyi ve bir şekilde "biçimlendiriciye" takmayı düşüneceğim. – BuddyJoe

0

dinamik olarak kontrol eylemi farklı bir görünüm vermek gerekirse, sadece base.View() yöntemiyle (veya ViewResult kurucu) için bir değer sağlayabilir. (Web formları motorunu görmek için) bakış yeri her zaman olacaktır:

/Views/{Controller}/{View}.aspx 

Düzenleme: (işi sayesinde) 'de ayrıca olabilir:

/Views/Shared/{View}.aspx 
+0

Teknik olarak paylaşılan klasörden de gelebilir. (Bir kenara: Geçmişte yaptığım projelerde "zorla klasör" davranışından memnun olmadığım için kendi viewengine yazdım.) – Joel

+0

Önce Paylaşılan içinde mi arama yapıyor? veya kontrolör adı altında ilk? – BuddyJoe

+0

Denetleyici adı, daha sonra Paylaşılan –