Razbezhkin
@Razbezhkin
программист, преподаватель

Есть ли строготипизированный способ повторного использования кода Razor в ASP.Net MVC?

Здравствуйте!
В моем проекте есть частичные действия (ActionResult PartialAction(){ return PartialView(); }) и представления Razor, которые я использую в других представлениях при помощи вызовов тип:
Html.RenderAction("ActionName","Controller",new { x = 1, y=2, z=3})
Html.RenderPartial("~/Views/Controller/ViewName",new { a=10, b=20, c=30})


Но этот подход мне не очень нравиться: во первых, невозможно воспользоваться IntelliSense, а нужно каждый раз искать нужный метод и все его параметры, а во вторых, сложно найти все места, где вызывается какой-то определенный метод (Shift+F12 не работает).

Насколько уместно, правильно и не вредно делать для таких частичных представлений и дочерних действий обертку в виде расширений типа таких:

public static class HelperExtensions
{
    public static MvcHtmlString RenderABC(this HtmlHelper self, int a,int b, int c)
    {
        return self.Partial("~/Views/Controller/ViewName",new { a, b, c});
    }
}

Соответственно, в любом представлении вместо
Html.RenderPartial("~/Views/Controller/ViewName",new { a=10, b=20, c=30})

пишем
Html.RenderABC(10,20,30)
и получаем дополнительное удобство

Еще раз вопрос: такой подход нормален или это велосипед, костыль, анти-шаблон и т.п.
А может быть есть уже изящный способ оформления повторно используемого кода Razor?
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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