Как создать пользовательский интерфейс панели мониторинга с помощью ASP.NET MVC? - PullRequest
5 голосов
/ 16 ноября 2008

В настоящее время я создаю приложение с использованием ASP.NET MVC. Страницы ввода данных довольно легко кодировать, я просто делаю Модель для страницы типа моего бизнес-объекта:

namespace MyNameSpace.Web.Views.ProjectEdit
{
    public partial class MyView : ViewPage<Project>
    {
    }
}

Где я изо всех сил пытаюсь найти лучший способ реализовать интерфейс, подобный инструментальной панели, с отдельными частями, используя ASP.NET MVC, где модель для каждой части будет отличаться? Я предполагаю , что каждая часть будет пользовательским элементом управления MVC.

Кроме того, как я могу сделать так, чтобы каждая часть была тестируемой?

Ответы [ 3 ]

7 голосов
/ 16 ноября 2008

Я думаю, что пользовательские элементы управления - это, вероятно, путь. Я не уверен, что беспокоит тестируемость. Вы должны быть в состоянии проверить, что ваш контроллер предоставляет правильные данные представления - поскольку у вас будет несколько моделей, каждая из которых, вероятно, будет храниться в отдельном элементе данных представления, а не объединяться в одну модель. Агрегирование в одной модели также возможно, хотя, возможно, более хрупкое. Каждый элемент управления должен был бы просто проверять определенный элемент данных представления, а не быть определенным для конкретной модели. Вы можете аппроксимировать переменную модели на каждой странице просмотра, выполнив:

<% MyUserControlModel model = ViewData["MyUserControlModel"]
         as MyUserControlModel; %>

<div id="myUserControl_dashboard" class="dashboard">
   Name: <%= model.Name %><br />
   Count: <%$ model.Count %>
</div>

Если вам нужно проверить свое представление, то вы, вероятно, уже используете Selenium или какую-либо другую среду веб-тестирования. Я не думаю, что это будет заботиться о том, как была создана страница, и вы должны иметь возможность создавать свои тесты почти так же, как вы всегда делаете.

3 голосов
/ 16 ноября 2008

Проверьте, что в MVC-Contrib есть понятие «субконтроллеры» http://www.codeplex.com/MVCContrib. По сути, вы выполняете полный запрос к частичному, а затем отображаете тот частичный, где вы хотите, в существующем коде.

В качестве альтернативы вы можете проверить это сообщение: http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/

2 голосов
/ 06 июля 2013

Codeplex.com имеет проект с открытым исходным кодом "DotNet.Highcharts". Этот проект предоставляет элемент управления ASP.NET, который охватывает превосходную (бесплатную для личного использования) библиотеку диаграмм Highcharts. это включает пример проекта MVC3 в разделе загрузок.

URL: http://dotnethighcharts.codeplex.com/

Я разместил статью на CodeProject.com, которая включает в себя загружаемое решение VS2012 и некоторый пример кода C #. Однако в моем примере я использую шаблон веб-формы, а не MVC. Большая часть информационной панели выполняется с использованием библиотек JavaScript, HTML и CSS. Я включил некоторый пример кода C # для демонстрации извлечения данных в C #, который затем объединился с кодом JavaScript, чтобы отобразить одну из многих диаграмм панели инструментов.

...