ASP.NET MVC控制器动作设计

Chr*_*ris 9 rest model-view-controller asp.net-mvc

我非常喜欢ASP.NET MVC的工作方式.我希望在所有新的Web项目上实现它,但是前几天我在原型中遇到了一个问题,我真的没有找到一个好的解决方案,所以我问你,你将如何设计一个MVC应用程序那不符合典型的REST模式?作为一个例子,我设计的原型将有几个页面,但页面本身不一定绑定到域模型.例如,使用一个简单的注册站点,该站点可能包含以下页面:

  • /Default.aspx
  • /Register.aspx
  • /ThankYou.aspx

有时,这样的程序可能需要管理部分来处理诸如调节注册或查看数据等细节.在标准的ASP.NET Web应用程序中,我可能会添加以下内容

  • /Admin/Default.aspx
  • /Admin/ListRegistrations.aspx
  • /Admin/ViewReports.aspx ...

在这种情况下,它是否会与MVC模式产生不可接受的偏差,因为它有两个控制器,例如:

  • 首页 - >指数
  • 首页 - >注册
  • 首页 - >三江源
  • 管理 - >指数
  • 管理 - > ListRegistrations
  • 管理 - >报告

由于没有真正可靠的子控制器和区域实现这一事实,我对此感到沮丧.我知道Phil Haack组装的"区域"原型,但它不是很成熟,坦率地说,我不确定我喜欢它的设置方式,但我真的不知道我是怎么想的看到那项工作.

我想当我认为MVC时,我倾向于认为REST,并且拥有代表页面而不是实际实体或动作的控制器动作并不适合我.你怎么看?

Meh*_*ari 3

您始终可以将 ASP.NET Web 窗体与 MVC 混合使用。

只需添加

routes.IgnoreRoute("Pages/{*path}");
Run Code Online (Sandbox Code Playgroud)

添加到您的路由表并将传统的 Web 表单页面添加到Pages应用程序的文件夹中。