Bir süre önce bir ASP.NET MVC uygulaması oluşturdum ve birkaç bakım döngüsünden sonra devlet yönetimine en iyi yaklaşımı kullanıp kullanmadığımı merak ediyorum. Her şey çalışıyor, ama daha iyi bir yol olduğunu hissediyorum.ASP.NET MVC'deki durum yönetimi
Site, birkaç seçeneğe sahip bir arama işlevselliğine dayanmaktadır. Bir kullanıcı siteyi bir formda bir dizi arama seçeneğini doldurarak ve 'ara' düğmesini tıklayarak kullanmaya başlar. Tüm arama seçenekleri ile ara yöntemine Bu düğme mesajlar Arama yöntemlerine parametreler, örneğin olarak tanımlanmaktadır:
Şimdipublic ActionResult Search(string param1, string param2, string param3, int? param3, long? param4)
çeşitli detay sayfalarına yönlendiren, gösterir Üzerinde bağlantıların bir numarası vardır sonuçları sayfası
<%=Html.ActionLink("LinkText", "MethodName", new {id="idOfDetailPage", param1=Model.param1, param2=Model.param2, param3=Model.param3, param4=Model.param4}, null)%>
her bağlantı parametre değerlerinin çoğu yapın: Ben ayrıntı sayfasındaki korunacak arama devlet gerektiğinden, vb, kendimi gibi her yerde parametrelerin sürü ile ActionLinks oluştururken bulmak aramanın mevcut durumundan değişmez, ancak detay sayfasında diğer linkleri oluşturabilmek için bunları geçmem gerekir. Örneğin, "arama sonuçlarına dön" gibi eş zamanlı arama parametreleri.
Yeni bir özellik isteği nedeniyle bir arama parametresi eklemem gerektiğinde, kendimi birçok bağlantıyı ve bağlantıların yol açtığı Denetleyici yöntemlerini değiştirmeyi buluyorum. Daha iyi bir yola ihtiyacım olduğunu düşündüğüm yer burası.
Arama parametrelerini tuttuğunuz için oturum durumunu kullanma hakkında düşündüm, ancak bunun bir nedeni, ASP MVC'de kullanmanın en iyi şey olmadığını düşündüm ve bu yüzden bunu yapmak için daha temiz bir yöntem varsa merak ediyorum.
Not: Ayrıca, ActionLink'te güçlü bir şekilde yazılan bir nesne kullandığım bir yaklaşım denedim, ancak yine de bu nesneye daha iyi gitmemesi için parametrelere geçmem gerekiyor.
Herhangi bir fikir takdir edilmektedir.
Bu, aynı arama parametrelerini ve yalnızca arama parametrelerini her zaman geçirdiğim sürece çalışır İyon, arama eylemi gibi. Ancak, bir öğenin kimliği gibi (detay sayfası için olduğu gibi) eyleme ek veri iletmem gerektiğinde başım belaya girer.Daha sonra modeli sadece Html.ActionLink yardımcı yöntemine geçiremiyorum. Ayrıca, birçok bağlantı, arama parametrelerinden birinin değiştirilmesini gerektiriyor ancak geri kalanı aynı kalıyor, dolayısıyla bu yaklaşımla yeni SearchParameters nesnelerinin oluşturulmasına devam etmem gerekiyor. Çalışır ama bir süre sonra dağınık olur. –
Cevherimi yapıştıracağım ve yer imi aramalarının her zaman yapabilmek için iyi bir şey olmadığını - daha ziyade içeriğe ve uygulamaya bağlı olduğunu - bu özellikle arama sonuçlarının açıkta kalmadığı durumlarda doğrudur. parametrelerde. Bence bunun iyi bir genelleme olduğunu düşünüyorum (-: – Murph