gpt4 book ai didi

c# - 如何做高级 ASP.NET MVC (3) 路由(计算操作等)?

转载 作者:行者123 更新时间:2023-11-30 18:04:44 24 4
gpt4 key购买 nike

已更新

考虑以下8条路由,其中​​AdministrationareacontrollerEmployeesControllerIdEmployeeId:

  1. Administration/Corporate/{controller}/{Id}/Phones/{PhoneId}/Delete
    • action = 删除手机
  2. Administration/Corporate/{controller}/{Id}/Phones/{PhoneId}/Deactivate
    • action = DeactivatePhone
  3. Administration/Corporate/{controller}/{Id}/Phones/{PhoneId}/Activate
    • action = ActivatePhone
  4. Administration/Corporate/{controller}/{Id}/Notes/{NoteId}/Delete
    • action = 删除笔记
  5. Administration/Corporate/{controller}/{Id}/Files/{FileId}/Delete
    • action = 删除文件
  6. Administration/Corporate/{controller}/{Id}/Addresses/{AddressId}/Delete
    • action = DeleteAddress
  7. Administration/Corporate/{controller}/{Id}/Addresses/{AddressId}/Deactivate
    • action = DeactivateAddress
  8. Administration/Corporate/{controller}/{Id}/Addresses/{AddressId}/Activate
    • action = ActivateAddress

我怎样才能把它变成:

Administration/Corporate/{controller}/{Id}/{object}/{ObjectId}/{action} 其中objectPhones|Notes|文件|地址|?操作Delete|Deactivate|Activate|??

  1. 我需要获取对象并将其单数化(我已经有了代码)。
    • object = 电话 (电话)
  2. 采取action并将其转换(重写?)为action + object(单数化)。
    • action = Delete+Phone (DeletePhone)

我可以完成第二个 #2 之前的所有事情,问题是如何将操作转换为路由定义中的其他内容

这一切有可能吗?最好采用我现在拥有的 8 条路线并将它们变成 1 条路线。此示例仅使用我的 EmployeesController,我的 CustomersController 是其大小的两倍,因此大约有 16 条路线可以变成 1。这将节省大量空间和代码。

无论如何,如果可能的话,我期待您的建议和想法。

最佳答案

您可以创建自定义路由处理程序。

public class CustomRoute : RouteBase
{
//your custom code
}

ASP.NET MVC Subdomain Routing

关于c# - 如何做高级 ASP.NET MVC (3) 路由(计算操作等)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6066237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com