MVC3 Razor: возможно ли визуализировать устаревший ASCX?

С механизмом просмотра Razor в MVC3,

Можно ли отобразить устаревший ascx?


Я ожидал, что смогу сделать что-то вроде:

@Html.RenderPartial("Footer.ascx")

person Jim G.    schedule 30.06.2011    source источник


Ответы (2)


да. Попробуйте это вместо этого:

@Html.Partial("Footer")

or

@{ Html.RenderPartial("Footer"); }
person gram    schedule 30.06.2011
comment
Кроме того, измените код программной части элемента управления, чтобы он наследовал System.Web.Mvc.ViewUserControl вместо System.Web.UI.UserControl. - person Webveloper; 17.05.2012
comment
спасибо, что спасли меня :) @Webdeveloper: вы упомянули важный момент, и без того он выдавал исключение. - person Raj; 21.12.2012
comment
Мне пришлось добавить расширение, чтобы это работало на меня @Html.Partial("Footer.ascx") (с MVC4) - person pauloya; 06.03.2014

Просто хотел добавить, что я не видел много людей, публикующих это решение:

Html.RenderAction("Footer", "Home");

Это лучше, если вы используете MVC, потому что вы можете указать любые данные, которые вам нужны, в контроллере, вместо того, чтобы пытаться управлять ими в свободном частичном представлении. Очень полезно, если вы используете класс BaseController для инициализации всех ваших вызовов.

public class HomeController : Controller {
    // ...

    [ChildActionOnly]
    public PartialViewResult Footer() {
         // do work
        return PartialView();
    }

    // ...
}
person sonjz    schedule 14.08.2012