Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 状态指示器的MVC html自定义帮助程序_C#_Html_Asp.net Mvc_Html Helper - Fatal编程技术网

C# 状态指示器的MVC html自定义帮助程序

C# 状态指示器的MVC html自定义帮助程序,c#,html,asp.net-mvc,html-helper,C#,Html,Asp.net Mvc,Html Helper,我正在尝试在应用程序顶部创建服务器状态图标。关闭时显示为红色,另一方面,打开时显示为绿色 我已经在我的DAL、BL、Controller和ViewModel中完成了所有肮脏的工作,因此我的页面上有一个div元素,可以根据服务状态更改颜色。我的问题是无法在div旁边添加标签 public static class ServerStatusIconHelper { public static MvcHtmlString ServerStatusIconHelper(this HtmlHelp

我正在尝试在应用程序顶部创建服务器状态图标。关闭时显示为红色,另一方面,打开时显示为绿色

我已经在我的DAL、BL、Controller和ViewModel中完成了所有肮脏的工作,因此我的页面上有一个div元素,可以根据服务状态更改颜色。我的问题是无法在div旁边添加标签

public static class ServerStatusIconHelper
{
    public static MvcHtmlString ServerStatusIconHelper(this HtmlHelper htmlHelper, bool isServerActive)
    {
        // Main container
        var div = new TagBuilder("div");
        bool isActive = isServerActive;
        var labelValue = isActive ? "The server status is On" : "The server status is Off";

        if (isActive)
        {
            div.Attributes.Add("id", "server-warning-on");
            div.Attributes.Add("style", "background-color: green; height:25px; margin-bottom: 10px; border-radius: 25px; width: 25px; margin-left: 10px;");
        }
        else
        {
            div.Attributes.Add("id", "server-warning-off");
            div.Attributes.Add("style", "background-color: red; height:25px; margin-bottom: 10px; border-radius: 25px; width: 25px; margin-left: 10px;");
        }

        return new MvcHtmlString(div.ToString());
    }
}

我希望能得到一些帮助,因为我不知道如何添加一个带有段落元素的div,它将提供
labelValue
。此外,如果有人有更好的想法,那就好了。

您可以将标签和div标签结合起来


此外,还需要添加
display:inline块
到您的样式以在div旁边显示标签。

您可以使用标记的
InnerHtml
属性

var labelValue = isActive ? "The server status is On" : "The server status is Off";
div.InnerHtml = labelValue;
或者,如果您想将
span
元素与div连接起来,您可以这样做

var span = new TagBuilder("span");
span.InnerHtml = labelValue;
并以

return new MvcHtmlString(div.ToString() + span.ToString());
使用时,可以使用
InnerHtml
属性或
SetInnerText
方法设置标记内容:

  • :获取或设置元素的内部HTML值
  • :将元素的InnerHtml属性设置为指定字符串的HTML编码版本
以下是一个例子:

var div = new TagBuilder("div");
div.AddCssClass("someClass");
div.MergeAttribute("id", "someId");
div.InnerHtml = "Some Text or Html Tag";
var result=  div.ToString();
这将生成以下输出:

<div class="someClass" id="someId">Some Text or Html Tag</div>
一些文本或Html标记

您没有为div设置任何内部文本或内部html。目前,我已经取得了一些进展,几乎完成了。我添加了一些span.SetInnerText(labelValue);div.InnerHtml=labelValue;