ASP.NET MVC Html.Element? - PullRequest
       15

ASP.NET MVC Html.Element?

0 голосов
/ 22 декабря 2009

Есть ли общий элемент Html.Element?

Я бы хотел сделать это:

Html.Element<AccountController>("IFrame", "elementName", new { src = c => c.ChangePassword })

1 Ответ

2 голосов
/ 22 декабря 2009

Наиболее подходящий подход "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, этот пост - хорошее место для начала.

...