создание контроллера asp mvc - PullRequest
0 голосов
/ 02 января 2011

Я хочу динамически создавать файлы ascx, чтобы частично их визуализировать. но, как я знаю, чтобы не показывать их, мне нужен хотя бы фиктивный метод:

public ActionResult test()
    {
        return PartialView();
    }

как я могу создать этот метод для каждого нового файла ascx?

обн: мне нужен завод?

Ответы [ 2 ]

0 голосов
/ 02 января 2011

Вам нужно было бы заранее создать элементы управления .ascx. Если вы делаете это, я бы порекомендовал вам зарегистрировать новый движок представления, чтобы указать новое PartialView местоположение.

public class MyViewEngine : WebFormsViewEngine
{
  public MyViewEngine()
  {
    PartialViewLocationFormats = new[]
    {
      "~/Views/{1}/{0}.ascx",
      "~/Views/GeneratedControls/{0}.ascx",
      "~/Views/Shared/{0}.ascx"
    };
  }
}

Это позволяет записывать динамические представления в папку /Views/GeneratedControls/. Если вам нужно использовать элемент управления с определенным именем (т. Е. Элемент управления, который вы генерируете, имеет случайное имя), вам просто нужно настроить вызов на PartialView:

public ActionResult test()
{
  return PartialView("name-of-control");
}

В противном случае MVC будет использовать имя Action в качестве имени элемента управления.

0 голосов
/ 02 января 2011

Зачем вам создавать динамические файлы ascx?

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

Но тогда зачем ты это делаешь? Таким образом, будет очень сложно проводить модульное тестирование, рефакторинг и повторное использование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...