Aynı isimle ve parametrelerle 2 harekete sahip olmak mümkün, ancak biri bir gönderi, diğeri olsun? Delete(id)
ve [HttpPost]Delete(id)
... Buna izin verilmediğini belirten bir hata alıyorum ...Posta ve alma için çift eylem isimleri ve parametre listesi mümkün mü?
cevap
Evet, mümkün. Sadece bir eylemi ActionName özellik kullanmak:
public ActionResult Delete(int id)
{
//...
return View();
}
[HttpPost]
[ActionName("Delete")]
public ActionResult Delete_Post(int id)
{
//...
return View();
}
bunu izin verilmediğini hatayı alıyorum nedeni C# kendisi karışır çünkü. MVC'de bir işlev HttpGet veya HttpPost olup olmadığını belirtmek için öznitelikler ekleyebilirsiniz, bu C# bir veya diğeri arasındaki farkı belirlemesine yardımcı olmaz. Aynı isimle 2 fonksiyona sahip olmak için, parametre listesinin farklı olması gerekir.
Frennky'nin işaret ettiği gibi, ActionName özniteliği MVC'de çalışır; çünkü MVC, adlandırılacak eylemi belirlemek için işlemin bir parçası olarak diğer adlar kullanır (özniteliklerle birlikte değil, parametrelerle birlikte).
Bir yan not olarak, GET isteğinde bir Sil eyleminin olmaması en iyisidir. Yanlış bir bağlantıya çarparak bir paletli ya da başka bir bot istemiyorsunuz: P
- 1. before_filter: eylem için denetleyici belirtmek mümkün mü?
- 2. Bir parametre seti tanımlamak ve referans vermek mümkün mü?
- 3. Dize Listesi için Çift Listesi dönüştürme nasıl?
- 4. Tipleri bir parametre paketine dönüştürmek mümkün mü?
- 5. C#: [], çift [] [] ve çift
- 6. Tensorflow'da Tensörün Modunu Alma Mümkün mü?
- 7. JSON üzerinden e-posta almak mümkün mü?
- 8. Jekyll'in her posta için bir sayfa oluşturmasını durdurmak mümkün mü
- 9. SASS'de her döngüde değişken isimleri dinamik olarak kullanmak mümkün mü?
- 10. Decapitalize insan isimleri (için 've muhasebe -)
- 11. FakeItEasy - Bir yöntemi engellemek ve kendi uygulamamla değiştirmek mümkün mü?
- 12. Prolog listesi ardışık çift
- 13. Html.BeginForm ve Denetleyici ve Eylem
- 14. flexbox eklentilerini hareketlendirmek ve kaldırmak mümkün mü?
- 15. Posta gönderme ve alma döngüsünü test etmek için yerel SMTP ve POP3 kurulumu
- 16. Atom.io arama ve silme, bu mümkün mü?
- 17. jenkins çift e-posta
- 18. SHA256CryptoServiceProvider ve WinXP'de kullanmak mümkün mü?
- 19. iPhone ve iPad uygulamasından yazdırmak mümkün mü?
- 20. Denetleyici/Eylem niteliklerine İleti İşleyicisinden erişmek mümkün mü?
- 21. WHERE statüsü için LIKE ve IN kullanmak mümkün mü?
- 22. şamandıra boyutları ve çift
- 23. Fonksiyon çağrı detaylarını yazdırmak için dekoratör - parametre isimleri ve etkin değerler
- 24. Açılır pencereyi ve sekmeleri eylem çubuğunda gezinme olarak kullanmak mümkün mü?
- 25. Değişen PDO :: YANLIŞ ve alma "geçersiz parametre numarası" hatası
- 26. OnActionExecuting'ta denetleyici ve eylem adı nasıl alınır?
- 27. JPA'da boş bir listeyi geçmek ve test etmek mümkün mü?
- 28. Delphi eylem listesi eşdeğer Delphi
- 29. Php döngüsü işlevini çift namlu sistemine dönüştürmek mümkün mü?
- 30. Kişi listesinden ad ve e-posta alma çok yavaş
Teşekkürler, bunun neden çok geçerli bir soru olduğundan başlangıçta reddedildiğini anlamadım. Bazı kişilerin rastgele bir parametre veya FormCollection uygulamasında geçmenizi önerdiğini okudum, ancak bu overkill gibi görünüyor. Bu, bunu yapmanın daha iyi bir yolu gibi geliyor. Çok takdir! –
sadece bir soru ... mvc neden aynı imzayla 2 harekete izin vermiyor? Kontrolörün hangi işlemi yapması gerektiğini bilmeyeceğine inanıyorum, ama kesinlikle HttpPost ile bu bir problem olmaz mı? –
Bu aslında MVC ile ilgili değil. C# belirtimine göre, bir yöntemin imzası, bildirildiği bir sınıfta benzersiz olmalıdır. Bunu düşünürseniz, özellik yoksa, onları nasıl ayırt edersiniz? – frennky