Bir ASP.NET MVC uygulamasında çalışıyorum. Bu uygulamada, özel bir nesnenin üstünde bir onay kutusu listesi oluşturmak için çalışıyorum. Özel nesne şöyle görünür:ASP.NET MVC - CheckBox Listesi Kimliği, Adı ve Değeri
: şöyle ki Profili denilen bir eylem ile, o zaman bir denetleyici varpublic class MyModel
{
public IEnumerable<ListItem<Guid, string, bool>> Options { get; set; }
}
:
public class ListItem<TId, TLabel, TIsChecked>
{
private TId id;
private TLabel label;
private TIsChecked isChecked;
public ListItem(TId id, TLabel label, TIsChecked isChecked)
{
this.id = id;
this.label = label;
this.isChecked = isChecked;
}
public TId Id
{
get { return id; }
}
public TLabel Label
{
get { return label; }
}
public TIsChecked IsChecked
{
get { return isChecked; }
}
}
ben şöyle bir modele sahip
[HttpGet]
public ActionResult Profile()
{
var model = new MyModel();
return View(model);
}
[HttpPost]
public ActionResult Profile(MyModel model)
{
return View(model);
}
Bu gibi benim Jilet görünümünde benim onay kutusu seçenekleri çevirdim:
@foreach (var option in Model.Options)
{
<div class="form-group">
<div class="checkbox">
<label>
<input name="Options" value="@option.Id" type="checkbox" @((option.IsChecked == true) ? "checked" : string.Empty)> @option.Label
</label>
</div>
</div>
}
Seçenekler iyi sonuç verir. Ancak, formu kaydettiğimde, yalnızca ilk seçilen onay kutusu kimliği döndürülüyor gibi görünüyor. Bir onay kutusu listesi için HTML'mi düzgün bir şekilde nasıl oluşturduğumdan emin değilim ve b) değerlerin sunucuya düzgün bir şekilde gönderilmesini sağlayın. Blog yayınlarında başka örnekler gördüm, ancak görünümümün daha fazla HTML’si olacak. Bu nedenle, istemci tarafında "nasıl" onay kutusu değerlerinin işlendiğini anlamaya çalışıyorum ve ASP.NET MVC'de sunucuya geri gönderilmeye çalışıyorum. ayarlayıcılar ekleyin, veri geri gönderildi olmaz, böylece özellikleri için ayarlayıcılar yok İkincisi
public List<ListItem<Guid, string, bool>> Options { get; set; }
: