asp.net mvc создает класс ac # в файле ascx для целей проектирования - PullRequest
0 голосов
/ 01 января 2011

Я занимаюсь разработкой веб-приложения с использованием asp.net mvc.

Я столкнулся с необходимостью Временно создать класс в файле ascx / aspx.
Этот класс заменит модель во время разработки страницы.
Он также будет содержать некоторые тестовые данные, чтобы пользователь мог увидеть некоторые результаты.

Как только мы будем довольны расположением на экране, я унаследую правильный класс Model через тег Control.

Подскажите, пожалуйста, возможно ли это и как это сделать?

Это не работает:

<%
    class Modelo
    {
        public Guid Guid { get; set; }
        public string Name { get; set; }
    }
%>

Редактировать:
Я обнаружил, что когда я сижу с пользователем и мы обсуждаем особенности элемента управления на экране, во многих случаях, когда он / она видит результаты и мы обсуждаем их, он / она просит что-то изменить. Перемещение между контроллером, моделью и хранилищем поддельных данных требует времени. Несмотря на то, что пользователь достаточно умен, он / она не может следить за тем, что я делаю, и чувствует себя менее вовлеченным. Если бы все было в одном месте, я мог бы объяснить им, что я делаю, они, по крайней мере, почувствовали бы, что знают, что происходит, и мы тратим больше времени на работу и меньше времени ждем, пока я переключусь между экранами. После того, как он уйдет, я могу спокойно сесть и спокойно выполнить согласованное решение. Сохраняя класс с фальшивыми данными, представляющими модель, на фактическом контроле, все, что мне нужно будет сделать, - это выполнить некоторые служебные обязанности, чтобы соответствовать образу действий MVC.

Надеюсь, теперь стало понятнее.

Заранее спасибо, будь счастлив - Джулиан

Ответы [ 3 ]

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

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

Лучше всего было бы создать временный класс в контроллере, а затем передать его в представление.По крайней мере, для этого требуется несколько шагов, и переключение между двумя окнами не займет слишком много времени.

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

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

Ваше представление основывается на ViewModel, как обычно, однако вы копируете модель представления в локальную переменную 'DisplayModel', которую используете для отображения. Значения в этом могут быть установлены локально во время демонстрационной стадии разработки - если контроллер не предоставил никаких значений.

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MyViewModel>" %>

<%
  MyViewModel displayModel = MyViewModel;

  if (displayModel == null) 
  {
     displayModel = new MyViewModel {
        Property1 = "Test Value 1",
        Property2 = 100.00,
        Property3 = true
     };
  }
%>

<%= displayModel.Property1 %>
<%= displayModel.Property2 %>
<%= displayModel.Property3 %>
0 голосов
/ 01 января 2011

Почему бы вам напрямую не жестко закодировать значения в представлении? Другая возможность - использовать реальный класс модели, но использовать фиктивный репозиторий внутри контроллера, который заполнит модель временными данными. Как только окончательный репозиторий будет готов, все, что вам нужно сделать, это дать указание вашей DI-структуре передать реальный репозиторий контроллеру.

ИМХО создание временных классов внутри представлений не принесет большой пользы, и вы не выиграете время.

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