2012-07-23 21 views
5

yazıyorum. Ben yeni başlayan biriyim, eminim ki bu gerçekten çok kolay. ASP.NET MVC - How to get checkbox values on post başvurusunda bulundum, ancak kod artık kullanılamaz, bunu işe yaramıyor. İşte Geri Bildirim Verileri Değerleri Geri Bildirim Verileri Geri Bildirim Ver Daha fazla bilgi Geri Bildirim Ver Daha fazla bilgi Geri Bildirim Ver Daha fazla bilgi Bir ASP.NET MVC uygulaması yazıyorum ASP.NET MVC

benim Görünüm geçerli:

@using (@Html.BeginForm("Promote", "FPL", FormMethod.Post)) 
{ 
<div data-role="fieldcontain"> 
<fieldset id="PromotionInfo" name="PromotionInfo"> 
<legend><b>@Model.itemType Promotion Details</b></legend> 
    <label for="TargetDate">Target Date: </label> 
    <input type="date" id="TargetDate" data-role="datebox" data-options='{"mode": "flipbox"}' /> 

    <label for="EmailCC">Email cc List: </label> 
    <input type="email" id="EmailCC" /> 

    <div data-role="fieldcontain"> 
    <fieldset data-role="controlgroup"> 
    <legend>Choose Destination Server(s): </legend> 

    @foreach (DataRow server in Model.destinationServerList.Rows) 
    { 
    <label for="@server.ItemArray[0]">@server.ItemArray[1]</label> 
    <input type="checkbox" name="destinationServerSID" id="@server.ItemArray[0].ToString()" /> 
    } 

    </fieldset> 
    </div> 
</fieldset> 

</div> 

<input type="submit" value="Submit" /> 
} 

Ve işte benim Denetleyicisi'dir:

public ActionResult Promote(string id) 
    { 
     //Model(item) construction occurs here 

     return View(item); 
    } 

    [HttpPost] 
    public ActionResult Promote(FormCollection collection) 
    { 
     try 
     { 
      string[] test = collection.GetValues("destinationServerSID"); 
     } 
     catch (Exception ex) 
     { 
      return null; 
     } 
    } 

testi [] değişkeni 2 öğe dizisi içeren, ancak "açık" değerine sahip her ikisi de , öğelerin listesi 2 öğeden daha uzun. Seçtiğiniz her değer için bir "açık", ancak "kapalı" değerler içermez. Onay kutusunun gerçek değerine ihtiyacım var (kimlik alanı).

cevap

3

Sd'ler sunucuya gönderilmez. Sadece isim ve değer sunucuya gönderilir ve sadece onay kutusu işaretlendiğinde.

@server.ItemArray[0].ToString() ile value özniteliğini ayarlamayı deneyin.

<input type="checkbox" name="destinationServerSID" value="@server.ItemArray[0].ToString()" /> 
+1

Vay canına, ben bunu özledim inanamıyorum ... Çok teşekkür ederim, tüm ihtiyacım olan bu. –

3

Varsayılan HTML ileti davranışı, işaretlenmemiş kutular için değer göndermiyor. Html.CheckboxFor yöntemini kullanabilirsiniz, bunun yerine her zaman bir değer göndermek için gerekli tüm girdileri üretecektir.

+0

Bu da işe yarayacaktı, bununla birlikte, bir kimlik yerine bir değer olarak iletmenin cevabı tüm ihtiyacımdı. Cevap verdiğiniz için teşekkürler! –

İlgili konular