Asp. Сетевые MVC - открывают HTML Controls

Я плохо знаком с asp.net mvc. Я надеюсь создавать некоторое управление для многократного использования HTML. У меня есть сложное поле HTML, например:

<div class="Box">
    <div class="Top"></div>
    <div class="Content">
        <div style="padding:10px;">
        [CONTENT GOES HERE]
        </div>
    </div>
    <div class="Bottom"></div>
</div>

Ранее использование веб-форм я смог снова использовать это путем наследования Рендерингу переопределения и WebControl. Но как я могу реализовать это в MVC?

Содержание поля могло, конечно, быть что когда-либо. Другие поля, например.

1
задан DaveRandom 25 February 2013 в 23:14
поделиться

2 ответа

Еще проще всего: использовать UserControl

<%@ Control Language="VB" Inherits="System.Web.Mvc.ViewUserControl" %>
<div class="Box">
    <div class="Top"></div>
    <div class="Content">
        <div style="padding:10px;">
        <%= Model.Content %>
        </div>
    </div>
    <div class="Bottom"></div>
</div>

А затем вызвать пользовательский элемент управления с помощью

<% Html.RenderPartial("NiceBox", New with {.Content = "The real content goes here"})%>
2
ответ дан 2 September 2019 в 23:32
поделиться

Вот пример одного из способов создания его как Метод расширения HtmlHelper:

    public static string Box(this HtmlHelper helper, string content)
    {
        var builder = new StringBuilder();
        builder.Append("<div class=\"Box\" .......... );

        if (!String.IsNullOrEmpty(content))
        {
            builder.Append(content)
        }

        return builder.ToString();    
    }

По вашему мнению:

  <%= Html.Box(contentString) %>

Другие варианты - создать его как частичное представление (.ascx) и передать ему класс ViewModel, содержащий контент, который вы хотите отобразить. Судя по требованию «контент может быть любым», расширение HtmlHelper может быть более гибким для вас.

0
ответ дан 2 September 2019 в 23:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: