asp.net mvc javascript如果模型bool属性为false,则默认隐藏表行

时间:2016-01-21 19:08:05

标签: asp.net asp.net-mvc

如果用户点击切换单选按钮,我添加了一个javascript来隐藏tablerow。

<script type="text/javascript">
    $(document).ready(function () {
        $('#radio1').change(function () {
            if ($(this).val() == false) {
                $('#trMyTextBox').show();
            }  
        });
        $('#radio2').change(function () {
            if ($(this).val() == false) {
                $('#trMyTextBox').hide();
            }
        });
    });
</script>

<tr id="trMyTextBox">
<td style="width: 50%;">
</td>
<td>
<div class="col-xs-7">
@Html.TextBoxFor(model => model.MyTextBox, new {@id = "textEmail", @class = "form-control"})
</div>
</td>
</tr>

当用户在单选按钮之间点击时,我得到了它。我需要从我的控制器进行更改,我在模型中传递,如果像showtextbox这样的属性为false,我需要默认隐藏表行。我怎么做?感谢。

2 个答案:

答案 0 :(得分:2)

这应该这样做。

public class ActiveAdmin
{
    public string Id { get; set; }
}

更干净的解决方案是不使用内联样式,而是使用基于Model属性值的css类。

<tr style="display: @(!Model.ShowTextbox ?Html.Raw("none;") :Html.Raw(""))"><td>A</td></tr>

你的css课程将是

<tr class="@(Model.ShowTextbox ? Html.Raw("show") : Html.Raw("hide"))"><td>A</td></tr>

答案 1 :(得分:1)

@code
var style = "display: none;";

if(Model.ShowTableRow)
{
    style = "";
}
end code    
<tr id="trMyTextBox" style="@style">

将样式显示设置为none将默认隐藏行及其内容,除非ShowTableRow为true,否则不会应用隐藏的显示属性。