В настоящее время я нахожусь в процессе переноса своих представлений aspx mvc на движок бритвы, но я столкнулся с некоторой головной болью, когда дело доходит до моих помощников.
Я не уверен, почему, но мои помощники отображаются в виде текста, а не в виде разметки, когда я пытаюсь использовать помощника в его форме расширения html, я получаю текст, а не html.
Код для расширения:
public static string LinkButton(this HtmlHelper helper, string id, string value, string target, object htmlAttributes)
{
var linkButton = new TagBuilder("div");
var attributes = new RouteValueDictionary(htmlAttributes);
linkButton.MergeAttribute("id", id);
//-- apply the button class to the div and any other classes to the button
linkButton.MergeAttribute("class", attributes.ContainsKey("class") ? string.Format("linkbutton {0}", attributes["class"]) : "linkbutton");
var content = new TagBuilder("a");
content.MergeAttribute("href", target);
content.InnerHtml = value;
linkButton.InnerHtml = content.ToString();
return linkButton.ToString();
}
Это довольно простое расширение, и оно используется следующим образом:
[ul] @foreach (UpModule module in ViewBag.Modules) { [li]@Html.LinkButton(module.Name, module.Value, module.Target, new {@class = "landingButton"});[/li] } [/ul]
кроме явно неправильных html-тегов, что я напутал?
edit Я должен отметить, что там неправильная разметка, так как я не могу отобразить правильную разметку в своем вопросе, и я полностью осознаю, что это не сработает.