【问题标题】:How to separate code in different controllers but provide clear URLs如何在不同的控制器中分离代码但提供清晰的 URL
【发布时间】:2013-12-06 08:42:32
【问题描述】:

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

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

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

【问题讨论】:

标签: .net asp.net-mvc routes


【解决方案1】:

您可以使用“ActionName”属性并在您的方法中使用它来更改干净 URL 的操作方法的名称 例如。

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

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

【讨论】:

【解决方案2】:

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

【讨论】:

    【解决方案3】:

    解决方案是创建区域..

    右键单击项目 => 添加新项目 => 区域 .. 将其命名为 ADMIN

    这意味着你所有的管理相关代码都在这个区域内..

    转到控制器文件夹并创建名为 Document 的控制器,并在 Create Action 方法中创建名为 Create 和其他...

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-23
      • 1970-01-01
      • 2015-09-25
      • 2017-11-01
      • 2019-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多