2012-01-19 18 views
5

Jquery post yöntemi ile aşırı yüklenmiş C# işlevini çağırırken bir sorun yaşıyorum. i bana bu hatayıAsp.Net MVC'de JQuery aracılığıyla aşırı yüklenme C# işlevi nasıl çağrılır? 2

The current request for action 'func' on controller type 'TeamController' is 
ambiguous between the following action methods 

ben verir bu

var url = '<%= Url.Action("func", "Team") %>';     
$.post(url, { a: "test" }, function (data) { 
}); 

gibi jquery bir parametresi vardır işlevini çağırdığınızda

Ben

string func(string a) 
string func(string a, string b) 

Şimdi C# iki işlevi vardır Bu aşırı yüklenmiş işlevleri nasıl arayabilirim bilmek istiyorum. Im.Net MVC 2'yi kullanarak C#

+1

Jim, başlık ve etiketin önerebileceği şeyi öne sürüyor, bu sorunun neredeyse hiçbir şeyi yok * sadece JavaScript ya da jQuery yapmak için hiçbir şey * –

+0

Trende otomatik düzeltmeler var, "sadece", "ile" olmalıdır, son yorum için anlam –

+0

Ayrıca bu durumla karşı karşıyayım ama Web Formları MVC değil. Geçici çözüm olarak kullanma. –

cevap

7

ASP.NET MVC genellikle işlem aşırı yüklenmelerine izin vermez. Sunucuya gönderdiğiniz içeriğe bağlı olarak farklı şeyler yapmak isterseniz, farklı isimlerle (farklı eylem adları ve farklı URL'ler olduğu anlaşılan) iki işlev arasında işlemeyi ayırmayı düşünmelisiniz. Aşırı yüklemeyi kodda tutmak istiyorsanız, yine de bu işlevleri [ActionName("%some_name_here%")] özniteliklerine farklı adlar vererek süslemelisiniz.

Tek eylem adını korumak istiyorsanız, iki parametre a ve b ile bir "Ön Uç" eylemi oluşturun ve burada eylem kodu b==null olup olmadığını kontrol edin. B boşsa, func (a) aşırı yükünü çağırın, aksi halde func (a, b) öğesini çağırın.

İlgili konular