2010-07-08 13 views
7

Tam sayıların listesine bağlı bir eylemim var. İlk içgüdüm, eylemi sadece bir Liste ile ilan etmekti. ben bir kesme noktası koyduğunuzda Liste boşsa derler rağmenTamsayıların listesini MVC eylemine nasıl geçirebilirim?

<%= Html.ActionLink("EditMultiple", "EditMultiple", new { ids = new List<int> {2, 2, 2} })%> 

: şöyle

public ActionResult EditMultiple(List<int> ids) 

ve benim Görünüm çağrısında:

Ben denetleyicisi harekete ilan çalıştı aksiyon. Neden olduğunu veya alternatif bir yaklaşımı olduğunu bilen var mı?

senaryo hakkında daha fazla detay ekleme: Aynı anda "Düzen" Birden kişiler çalışıyorum

. Zaten kütüphanede kitap hakkında bilgi oluşturmamı/düzenlemem/görüntülememi sağlayan bir uygulamaya sahip olduğum noktadayım. Kullanıcının tek bir kitap hakkındaki bilgileri düzenlemesine ve veritabanına kaydetmesine izin veren kısmi bir görünüm var.

Şimdi kullanıcı tek Gönder düğmesini ile birden kitaplar hakkında bilgi düzenlemenize olanak tanıyan bir görünümü oluşturmak istiyorum. Her kitap için kısmi bir işlem oluşturan bir EditMultiple eylemi oluşturdum (bu görünüm için benim modelim Listedir) ve daha sonra gönderme düğmesini ekler.

+0

Bu eylemde ne yazıyorsunuz? –

+0

Bu örnekte yukarıdaki örnek benim gerçek senaryoya biraz yakın. Bu POST GET değil. Açıklamayı gerçek senaryo hakkında daha fazla bilgi ile güncelleyeceğim. – Justin

cevap

4

Evet. Varsayılan model bağlayıcı, "ids" i herhangi bir ICollection'a bağlayabilir. Ancak aynı ada sahip birden çok parametre göndermelisiniz. Bu "ActionLink" yardımcı yöntemini kullanarak ortadan kaldırır. Öyle gibi bağlantı kimlikleri url yardımcı Eylem kullanabilir ve ekleyebilirsiniz:

<a href="<%= Url.Action("CreateMultiple")%>?ids=2&ids=1&ids=3">Test link</a> 

Here's the link Haack en bloktan.

+0

Bu teşekkürler teşekkürler. Html yardımcı programını kullanmayın, ancak kodlanmış değerler sadece prototipleme içindir, bu yüzden hile yapar. – Justin

2

Ben

new List<int> {2, 2, 2} 

düzgün birleşebilen bir POST dönüştürülmüş olur, ayrıca, im emin değilim, ben don' çalışabilir

Ids=1&Ids=2&Ids=3 

virgül ayrı bir liste göndermek istediğiniz sanmıyorum t Varsayılan varsayılan modelleyiciyi kullanmayın.

Neden bunu yapıyorsun? Umarım başka bir şey için sözde kodlar ...

+0

soruya daha fazla detay eklendi. tabiki aslında kitapları düzeltmiyorum ama bu tartışmanın amaçları için yeterince iyi. Birden fazla kitabı düzenlemenin daha iyi bir yolunu düşünürseniz, Listedeki EditMultiple için bir Eylem oluşturmaktan daha iyidir. Bu benim ilk gerçek MVC uygulaması, bu yüzden hala çerçeve ve tasarım kalıplarını öğreniyorum. – Justin

+0

Bu nedenle, geleceğin, istemcinin program aracılığıyla (örneğin, FormUrlEncodedContent aracılığıyla) gönderdiği bir MVC eylemine nasıl gönderileceğini anlamaya çalışan gelecekteki kişilere dikkat edin: bu, yalnızca aynı döngüyü listeye eklemek ve eklemek KVP'lerin oluşturdukları FormUrlEncodedContent, birden çok kez, farklı değerlerle (her şeyden sonra sadece bir liste değil, uygun bir sözlük değil, bu yüzden izin verilir (ve çalıştı!) – neminem

İlgili konular