如何动态更改mvc3中标签的可见性?

时间:2014-03-19 07:08:38

标签: c# asp.net asp.net-mvc asp.net-mvc-3

我有以下代码

<div> @Html.LabelFor(m=>m.WrongLogin) </div>   

我想根据控制器中服务器端代码的条件动态显示标签。如果控制器返回false值,那么我需要制作标签visible

3 个答案:

答案 0 :(得分:6)

只需使用if声明:

@if (Model.LoginFailed) // Or whatever...
{
    @Html.LabelFor(m => m.WrongLogin);
}

答案 1 :(得分:2)

由于Jon Skeet的回答是正确的,如果你不想要Model,你可以使用ViewBag。

<强>控制器

public ActionResult Index()
{
    ViewBag.IsValid = false; //or true based on your condition

    return View();
}

查看页面

@if (ViewBag.IsValid)
{
    <div>@Html.LabelFor(m=>m.WrongLogin)</div>    
}

答案 2 :(得分:2)

Jquery还有另一种方法,

默认设置Div Invisible并设置div Id。如下,

在.cshtml中

<div style="display:none" id="DivWrongLogin">
        @Html.LabelFor(m=>m.WrongLogin) 
</div> 

脚本

$(document).ready(function () {
     if('@Model.LoginFailed' == false)
     {
         $('#DivWrongLogin').show();
     }
});