私はモデルをいくつか継承していますが、ここではそのタイプに応じて異なるHTML属性を適用したいと考えています。だから私の考えは、プロパティを作成することでした、私はString.Format
の最初の引数として使用されるDisplayString
と呼ぶでしょう。ビュー内のHTML属性を持つString.Format()
クラス:DisplayString
私はこのような何かをできるようにするために使用される
public class Reaction
{
public string ReactionString { get; set; }
public string DisplayString { get; set; }
public Reaction(string reactionString)
{
ReactionString = reactionString;
DisplayString = "It was {0}!"
}
public Reaction(string reactionString, string displayString)
{
ReactionString = reactionString;
DisplayString = displayString;
}
}
public class GoodReaction : Reaction
{
public GoodReaction()
{
base("awesome");
}
}
public class BadReaction : Reaction
{
public GoodReaction()
{
base("horrible");
}
}
public class AverageReaction : Reaction
{
public GoodReaction()
{
base("alright", "It kinda was {0}...");
}
}
ビュー:
@model Reaction
@String.Format(Model.DisplayString, "<strong>" + Model.ReactionString + "</strong>");
だから、基本的にすべてのサブクラスは、私が表示したい文字列を持っているが、私は変化していますテキストとさまざまなマークアップ。もちろん、このようにすると、強力なタグがテキストとしてレンダリングされます。では、私の選択肢は何ですか?明確にするために必要な質問をお気軽に、うまくいけば私は適切に私の質問を得た。ありがとう!
EDIT:
は、だから私はHtml.Raw()
でそれを包み、それはトリックをした、私はそれをやっについて悪いものがあると確信しているが、私はおそらくタグを追加し、各部分をエンコードする必要があります、生の、または何か、私の目的のために動作します。