Nasıl ASP.NET MVC form kutularını işlemek için?
Dikkat: Bu soru beş yaşında!
En iyi seçenek yeni soru aramak için, ya da pek çok cevabı burada eski olarak MVC belirli sürümü arıyorsunuz aşağıdaki cevap aramak için.
Eğer sürümü için çalışan bir cevabı bulursan, lütfen cevap MVC sürümü içerdiğinden emin olun kullanıyorsunuz.
Bu bana biraz tuhaf görünüyor, ama anladığım kadarıyla senin böyle bir şey yapacağın.
Nesnelerin bir koleksiyonu var, ve kullanıcılar bir veya daha fazla seçmek istiyorum. Bu bana "onay kutuları ile bir form." dedi Benim nesnelerin herhangi bir kavram yok "" (POCO XML arama kaldırmada oluşan bu ilkel ediyorlar). seçilen Bu yüzden, aşağıdaki gibi yapın:
public class SampleObject{
public Guid Id {get;set;}
public string Name {get;set;}
}
Görünüm:
<%
using (Html.BeginForm())
{
%>
<%foreach (var o in ViewData.Model) {%>
<%=Html.CheckBox(o.Id)%> <%= o.Name %>
<%}%>
<input type="submit" value="Submit" />
<%}%>
Ve Denetleyici olarak, bu Kullanıcı Kontrol anlamaya görmenin tek yolu
public ActionResult ThisLooksWeird(FormCollection result)
{
var winnars = from x in result.AllKeys
where result[x] != "false"
select x;
// yadda
}
İlk başta onun garip, ve ikinci olarak, Kullanıcı Kontrol öğelerin, FormCollection "" doğru. yerine false true değerini listeler
Belli ki, bir şeyler eksik. Bu html form içinde hareket üzerine koleksiyon nesneleri bir ModelBinder UpdateModel()
kullanarak veya güncellenmiş akılda fikri ile inşa edilmiştir düşünüyorum.
Ama benim bu nesneler için ayarlanmış değildir; bu tek yol olduğu anlamına mı geliyor? Bunu yapmak için başka bir yol var mı?
CEVAP
Html.CheckBox yapıyor garip bir şey - eğer görünümü kaynak sonuç sayfası görürsünüz var <input type="hidden" />
olmanın yanı sıra üretilen her bir checkbox, hangi açıklar "doğru yanlış" değerleri ile görüştüğünüz için her form elemanı.
Sadece denedim çünkü kesinlikle ASP.NET MVC Beta üzerinde çalışan bu, deneyin.
Görünümünde bu Html yerine koy kullanarak.() Onay kutusu:
<% using (Html.BeginForm("ShowData", "Home")) { %>
<% foreach (var o in ViewData.Model) { %>
<input type="checkbox" name="selectedObjects" value="<%=o.Id%>">
<%= o.Name %>
<%}%>
<input type="submit" value="Submit" />
<%}%>
Senin kutularını selectedObjects
adı verilen ve her checkbox value
ilgili nesne gönderilir.
Aşağıdaki denetleyicisi eylem için benzer bir şey yararlı bir şey Yanıt yerine geliyor. (ya da daha sonra post(Yaz))
public ActionResult ShowData(Guid[] selectedObjects) {
foreach (Guid guid in selectedObjects) {
Response.Write(guid.ToString());
}
Response.End();
return (new EmptyResult());
}
Bu örnek sadece yazmak GUID kutularını kontrol ettim; ASP.NET MVC haritalar GUID değerleri seçili kutularını içine Guid[] selectedObjects
parametre için, ve hatta ayrıştırır dizeleri İsteği.Oldukça güzel olduğunu düşünüyorum instantied GUID nesneler, içine toplama formu.
Nasıl ilerleme iletişim ve arka plan i...
Nasıl gıt sayısı işlemek için?...
Nasıl form gönderme düğmeleri önlemek ...
Nasıl düğmeye tıklama Parçaları içinde...
Nasıl Git grep belirli bir kelime için...