У меня есть модель с некоторым наследованием, но вот в чем дело, я хочу применить различные атрибуты HTML в зависимости от того, какой это тип. Поэтому я подумал о создании свойства, я назову его DisplayString
, которое используется в качестве первого аргумента для 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()
, и это помогло, хотя я уверен, что в этом есть что-то плохое, и мне, вероятно, следует кодировать каждый фрагмент, затем добавлять теги, затем raw или что-то еще, но для моего Цели это работает.