从控制器添加动态CSS类

时间:2018-04-05 15:42:46

标签: asp.net asp.net-mvc asp.net-mvc-4

如何动态更改css classes,即单独的css类以获取警告或错误消息以及成功消息。

控制器阻止

public ActionResult Register(string username, string name, string role, string password)
{
    int role_ = Convert.ToInt32(role);
    ObjectParameter output = new ObjectParameter("V_OUT", typeof(int));
    var result = db.P_SET_USER(username, name, role_, password, output);
    ViewBag.alert = true;
    ViewBag.StudentsCount = Convert.ToInt32(output.Value);
    return View();
}

查看阻止

@if (ViewBag.alert == true)
{
    <div class='callout callout-info'>
        @ViewBag.StudentsCount;
    </div>
}

我想使用div class="callout callout-danger"和成功消息div class="callout callout-info"动态更改错误消息的css类。

3 个答案:

答案 0 :(得分:1)

你可以这样做,声明一个变量并在其上创建条件:

 @{
    var value = ViewBag.alert == true ? "callout callout-info" : "callout callout-danger;"
  }

然后调用其中的类的名称,您可以在需要此类的所有元素上调用此变量名。

<div class='@value'>
    @ViewBag.StudentsCount;
</div>

答案 1 :(得分:0)

您可以为要显示的每种消息创建不同的条件,并将CSS类应用于每种消息。此外,更喜欢TempDataViewBag,因为ViewBags在重定向后会丢失其值。

例如,
callout-info的{​​{1}},
TempData["alert"] == true的{​​{1}},
callout-warningTempData["alert"] == false callout-success TempData["error"] == false

callout-danger

答案 2 :(得分:0)

您可以在?类中包含三元运算符css的条件,如下所示

<div class='@ViewBag.alert == true ? "callout callout-info" : "callout callout-danger;'>
        @ViewBag.StudentsCount;
    </div>