Вопрос

Есть ли общий html.element?

Я хотел бы иметь возможность сделать это:

Html.Element<AccountController>("IFrame", "elementName", new { src = c => c.ChangePassword })
Это было полезно?

Решение

Наиболее подходящий подход «MVC-ISH» для создания HTML-контента, который вы описываете,-это создание пользовательского метода расширения HTMLHELPER. Этот метод должен использовать экземпляр System.web.mvc.tagbuilder для построения HTML. Вот пример (скопированный из одного из моих текущих проектов, но на самом деле не тестируется в изоляции):

using System.Web.Mvc;
using System.Linq;

public static class HtmlHelperExtensions
{
    public static string Element(this HtmlHelper htmlHelper, string tag, string name, object htmlAttributes)
    {
        TagBuilder builder = new TagBuilder(tag);

        builder.GenerateId(name);
        builder.MergeAttributes(htmlAttributes);
        // use builder.AddCssClass(...) to specify CSS class names

        return builder.ToString()
    }
}

// example of using the custom HtmlHelper extension method from within a view:
<%=Html.Element("iframe", "elementName", new { src = "[action url here]" })%>

Что касается расширения вашего пользовательского метода HTMlHelper для поддержки действия контроллера Lambda, эта почта это хорошее место для начала.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top