5

我目前正在使用 ASP.NET MVC 构建应用程序。数据输入页面相当容易编码,我只是为我的业务对象类型的页面制作模型:

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

我正在苦苦挣扎的地方是找出使用 ASP.NET MVC 实现类似界面的仪表板的最佳方法,使用独立部件,其中每个部件的模型会有所不同?我假设每个部分都是 MVC 用户控件。

另外,我怎样才能使每个部分都是可测试的?

4

3 回答 3

7

我认为用户控件可能是要走的路。我不确定对可测试性的关注是什么。您应该能够测试您的控制器是否提供了正确的视图数据——因为您将拥有多个模型,每个模型都可能存储在单独的视图数据项中,而不是将它们聚合在单个模型中。在单个模型中进行聚合也是可能的,尽管可能更脆弱。每个控件只需要检查特定的视图数据项,而不是特定于特定模型。您可以通过执行以下操作来近似每个视图页面上的模型变量:

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

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

如果您需要测试您的视图,那么您可能已经在使用 Selenium 或其他一些 Web 测试框架。我不认为这些会关心页面是如何构建的,您应该能够像往常一样构建您的测试。

于 2008-11-16T14:07:43.043 回答
3

查看这个概念是 MVC-Contrib http://www.codeplex.com/MVCContrib中的子控制器。基本上,您对部分运行完整请求,然后在现有代码中显示您想要的部分。

或者,您可以查看这篇文章: http: //blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/

于 2008-11-16T14:36:13.610 回答
2

Codeplex.com 有一个开源项目“DotNet.Highcharts”。这个项目提供了一个 ASP.NET 控件,它围绕着优秀的(免费供个人使用)Highcharts 图表库。其中包括下载部分中的示例 MVC3 项目。

网址:http ://dotnethighcharts.codeplex.com/

我在 CodeProject.com 上发布了一篇文章,其中包括可下载的 VS2012 解决方案和一些示例 C# 代码。但是,我在示例中使用了 Web 表单模板,而不是 MVC。仪表板的大部分是使用 JavaScript 库、HTML 和 CSS 完成的。我已经包含了一些示例 C# 代码来演示 C# 中的数据检索,然后将其与 JavaScript 代码合并以呈现众多仪表板图表之一。

于 2013-07-06T19:18:23.753 回答