C# 状态指示器的MVC html自定义帮助程序
我正在尝试在应用程序顶部创建服务器状态图标。关闭时显示为红色,另一方面,打开时显示为绿色 我已经在我的DAL、BL、Controller和ViewModel中完成了所有肮脏的工作,因此我的页面上有一个div元素,可以根据服务状态更改颜色。我的问题是无法在div旁边添加标签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
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;