2016-04-02 8 views
0

アプリケーションの上部にサーバステータスアイコンを作成しようとしています。オフになっているときは赤で表示され、反対にあるときは緑で表示されます。MVC htmlステータスインジケータのカスタムヘルパー

私は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()); 
    } 
} 

私はlabelValueを提供します段落要素とdiv要素を追加することを知らないので、私はいくつかの助けをいただければ幸いです。さらに、誰かが何か良いアイデアを持っていれば、よかったです。

+0

あなたはdivのための任意の内部テキストまたは内部HTMLを設定しませんでした。 –

答えて

0

として返すことができますまたはSetInnerTextメソッド:

  • InnerHtml:要素の内部HTML値を取得または設定します。
  • SetInnerText:要素の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> 
+0

私はいくつかの進歩を遂げ、ほとんど完了しました。私はいくつかの追加を行ったspan.SetInnerText(labelValue); div.InnerHtml = labelValue; –

0

ラベルとdivタグthis wayを組み合わせることができます。

さらに、display: inline-block;をスタイルに追加して、divの横にラベルを表示する必要があります。

0

タグのInnerHtmlプロパティを使用できます。

var labelValue = isActive ? "The server status is On" : "The server status is Off"; 
div.InnerHtml = labelValue; 

か、のdivとspan要素を連結したい場合は、InnerHtmlプロパティを使用してタグの内容を設定することができTagBuilderを使用するときは、

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

を行うと、

return new MvcHtmlString(div.ToString() + span.ToString()); 
関連する問題