2012-09-24 29 views
0

夥計!當選中複選框時(或不是)更改ViewModel

我有這樣的視圖模型:

public class ItemViewModel { 
    [Display(Name="Has serie number?")] 
    public bool HasSerieNumber { get; set; } 
    public string SerieNumber { get; set; } 
} 

我有這樣的觀點:

@Html.LabelFor(item => item.HasSerieNumber); 
@Html.CheckBoxFor(item => item.HasSerieNumber); 

@Html.TextBoxFor(item => item.SerieNumber); 

這JS代碼:

$('#HasSerieNumber').click(function() { 
    if ($(this).is(':checked')) { 
     $('#SerieNumber').show(); 
    } else { 
     $('#SerieNumber').hide(); 
    } 
}); 

好吧,當我檢查SerieNumber文本顯示HasSerieNumber複選框。 當我檢查視圖中的項目時,是否有方法來觸發/更改HasSerieNumber屬性? 這個想法是:當我檢查複選框時,屬性的值將被更改,並且我可以通過此屬性控制文本框的可見性。

謝謝!

回答

0

因爲HasSerieNumber屬性綁定到複選框,您的代碼已經這樣做了。當複選框被選中時,HasSerieNumber將作爲true發送到相應的控制器動作,未選中時將爲false。單擊複選框時,您也可以有效地切換相應文本框的可見性。

所以只是把這個包的形式:

@using (Html.BeginForm("SomeAction", "SomeController")) 
{ 

    @Html.LabelFor(item => item.HasSerieNumber) 
    @Html.CheckBoxFor(item => item.HasSerieNumber) 

    @Html.TextBoxFor(item => item.SerieNumber) 

    <button type="submit">OK</button> 
} 

當表單提交下列控制器動作:

[HttpPost] 
public ActionResult SomeAction(ItemViewModel model) 
{ 
    ... 
} 

模型將從請求正確綁定值感謝默認模型聯編程序 - HasSerieNumberSerieNumber屬性將包含這些值。

+0

感謝您的回答,Darin。我知道這個。我的疑問是:在點擊複選框的時候是否有一種方法可以觸發一些Controller方法?我的代碼工作完美,我只是想知道如果我點擊複選框可以觸發一些控制器方法。謝謝! – Kiwanax

相關問題