如何在不同的控制器中分离代码,但提供清晰的 URL



我正在研究ASP.NET MVC 4应用程序。我有这个应用程序的两个逻辑部分 - 用户部分和管理面板。我在开发项目方面根本没有太多经验,所以当我考虑如何构建我的代码时,我决定不使用区域,因为它们将是我必须学习的许多其他东西之外的另一件事,但现在我面临一个问题。

当具有权限的用户进入www.mysite.net/admin时,我希望拥有像www.mysite.net/admin/Documents这样的 url,这已经导致了一个问题 - 我AdminController充满了方法,即使这样我甚至没有解决URL问题,因为www.mysite.net/Admin/Documents很干净,但是如果我想创建新的Document,因为我将所有 CRUD 方法都保留在同一AdminController我不能简单地Create方法但充其量DocumentCreate这会导致像www.mysite.com/Admin/DocumentCreate这样的URL,而不是像www.mysite.com/Admin/Document/Create这样的用户(和我(清楚的东西,而且 - 将所有内容保存在一个控制器中已经使维护变得非常困难,我只需要添加更多方法。

我如何两者 - 分离逻辑而不是将所有内容保留在AdminController中并提供像上面那样的干净URLs - www.mysite.com/Admin/Document/Create

您可以使用" ActionName "属性并在您的方法中使用它来更改干净 URL 的操作方法的名称前任。

[ActionName("Create")]
public ActionResult DocumentCreate()
{
}

分离逻辑和可维护性的另一种选择,Area 是最佳选择。

最好的,也可能是最简单的方法,是使用区域。 它们并不难学,所以你应该能够立即学会它。

解决方案是创建区域。

右键单击项目 =>添加新

项目 => 区域 .. 给它命名 管理员

这意味着您所有与管理相关的代码都位于此区域内。

转到控制器文件夹并创建名为文档的控制器,然后在名为"创建"的"创建操作"方法中,"创建"和其他...

访问网址 : www.mysite.com/Admin/Document/Create

http://www.codeproject.com/Tips/601504/Using-areas-in-ASP-NET-MVC-to-organize-a-project

最新更新