Подтвердить что ты не робот

Оформление частичного просмотра в коде MVC Razor

Я использую MVC 3 Razor для создания простой CMS для практических целей, и идея в том, что я создаю несколько частичных представлений.

Я хочу сделать поиск базы данных и увидеть, что 3 частичных представления нуждаются в рендеринге на странице.

Как мне это сделать? В WebForms вы вызываете LoadControl (ControlURL), но я не вижу эквивалента здесь.

Будет ли это на стороне клиента?

Изменить - я больше думал о том, чтобы взять имя вида из модели, а затем сделать это представление, а не зная имя представления заранее. Таким образом, страница может иметь представление с именем Foo или view named Bar. Модель во время выполнения сообщит о действии контроллера, просмотр которого визуализируется.

4b9b3361

Ответ 1

Есть два метода, которые вы можете использовать для визуализации "элемента управления".

@Html.Partial("ViewName")
@{ Html.RenderPartial("ViewName"); }

Вы также можете выполнять другие действия.

@Html.Action("ActionName", "Controller", new { Values = "yourvalues" })
@{ Html.RenderAction("ActionName", "Controller", new { Values = "yourvalues" }); }

Обратите внимание, что второй из них окружен @{ }, потому что они не возвращают строку, а отображают непосредственно в поток.

Ответ 2

Кроме того, рассмотрите @Html.Action() вместо Partial View

Ответ 3

Html.RenderPartial("partialview name", Model.class, new ViewDataDictionary { TemplateInfo = new TemplateInfo { HtmlFieldPrefix = "classname" } });

This code can be used to render the partial view in apge.
HTMLfiledprefix is defined to keep the data available in the model

You can use tis code to load a partial view on a button event using ajax
 function partialview() {
        var url = '@Url.Action("action", "controller")';
        var data = $('#frm').serialize();
(to serialize the data in the model before posting to the action)
        var finaldata = data;
        $.ajax({
            type: "post",
            url: url,
            data: finaldata,
            async: false,
            contentType: "application/json; charset=utf-8",
            error: function (xhr) {
                errorRedirecttoErrorController(xhr.error);
            },
            success: function (data) {
                $("#DIVID").html(data);
(div to which the partial view to be loaded)
            }
        });
    }