2013-03-08 14 views
6

Ive ha ottenuto una forma:@ Html.RadioButtonFor booleano

@using (Html.BeginForm("Buy", "Keys", FormMethod.Post)) 
{ 
<div class="calc_steps"> 
    <div class="NumberedRow one"> 
     1. @Html.DropDownListFor(model => model.PaymentSystem, Model.PaymentSystems, new { @class = "calcsteps_select styledselect" }) 
    </div> 
    <div class="NumberedRow two"> 
     2. <div class="cnt"> 
      Укажите тип лицензии 
      <div class="radio-jquery-ui">@Html.RadioButtonFor(model => model.IsElite, "false") <label>Обычная</label></div> 
      <div class="radio-jquery-ui">@Html.RadioButtonFor(model => model.IsElite, "true") <label>Расширенная</label></div> 
      </div> 
    </div> 
    <div class="NumberedRow three"> 
     3. 
     <div class="cnt"> 
      Введите срок 
      @Html.TextBoxFor(model => model.NumDays) 
     </div> 
    </div> 
    <div class="itog"> 
     Итого: <span id="ïtogo">0 рублей 00 копеек</span> 
    </div> 
    <div> 
     <input type="submit" value="Купить"/> 
    </div> 
</div> 
} 

Modello:

public class BuyModel 
{ 
    public string PaymentSystem; 
    public bool IsElite; 
    public int NumDays; 
    public IEnumerable<SelectListItem> PaymentSystems; 
} 

Azione:

[HttpPost] 
    public ActionResult Buy(BuyModel model) 
    { 
     return View("BuySummary", model); 
    } 

E quando presento è il model.IsElite è sempre false (come impostazione predefinita). Cosa sto facendo di sbagliato qui?

+0

sembra perfetto. questo sempre sux. Sospetto che vada bene, ma condividi il tuo modello e il tuo metodo di azione. –

+0

Ive ha aggiornato il mio post. Grazie per il tuo tempo! – CodeDemen

+1

Si dovrebbe associare alle proprietà non variabili –

risposta

1

Sostituire

public bool IsElite; 

con

public bool IsElite {get;set;} 

Si deve lavorare ora!

Ricordati di legarsi alla properties e non le variabili

+1

Omg! Grazie! Sto codificando con Mvc già da parecchio tempo e non ho mai commesso un errore ... Forse è ora di andare a dormire o.O – CodeDemen

0

come questo. ? è necessario impostare una proprietà per che

public bool IsElite{get;set;}; 

quindi provare come questo

@Html.RadioButtonFor(model => model.IsElite, "True", model.IsElite== true ? new { Checked = "checked" } : null) 
+0

no, voglio dire che invia sempre un modello con valore "False" – CodeDemen