C# 如何执行高级ASP.NET MVC(3)路由(计算操作等)?
已更新 考虑到以下8条路线,C# 如何执行高级ASP.NET MVC(3)路由(计算操作等)?,c#,asp.net-mvc,asp.net-mvc-3,routing,routes,C#,Asp.net Mvc,Asp.net Mvc 3,Routing,Routes,已更新 考虑到以下8条路线,管理为区域,控制员为员工控制员,Id为员工Id: Administration/Corporate/{controller}/{Id}/Phones/{PhoneId}/Delete 操作=DeletePhone Administration/Corporate/{controller}/{Id}/Phones/{PhoneId}/Deactivate action=DeactivatePhone Administration/Corporate/{contr
管理
为区域,控制员为员工控制员
,Id为员工Id
:
Administration/Corporate/{controller}/{Id}/Phones/{PhoneId}/Delete
- 操作=
DeletePhone
Administration/Corporate/{controller}/{Id}/Phones/{PhoneId}/Deactivate
- action=
DeactivatePhone
Administration/Corporate/{controller}/{Id}/Phones/{PhoneId}/Activate
- action=
ActivatePhone
Administration/Corporate/{controller}/{Id}/Notes/{NoteId}/Delete
- 操作=
DeleteNote
Administration/Corporate/{controller}/{Id}/Files/{FileId}/Delete
- 操作=
DeleteFile
Administration/Corporate/{controller}/{Id}/Addresses/{AddressId}/Delete
- 操作=
DeleteAddress
Administration/Corporate/{controller}/{Id}/Addresses/{AddressId}/Deactivate
- 动作=
DeactivateAddress
Administration/Corporate/{controller}/{Id}/Addresses/{AddressId}/Activate
- 动作=
ActivateAddress
Administration/Corporate/{controller}/{Id}/{ObjectId}/{action}
其中object是phone | Notes | Files | address | |
和action是删除|停用|激活|
- 对象=
(电话
)电话
- 操作=
+删除
(电话
)删除电话
EmployeesController
,myCustomerController
的大小是该大小的两倍,因此大约有16条路由可以转换为1条。这将节省大量的空间和代码
不管怎样,如果可能的话,我期待您的建议和想法。您可以创建自定义路由处理程序
public class CustomRoute : RouteBase
{
//your custom code
}
我会设置一个简单的数组和方法来处理这种事情。它并不十分优雅,但应该很容易理解:
public static void RegisterRoutes()
{
var adminRoutes = new[]
{
new [] { "Phones", "PhoneId", "Delete", "DeletePhone" },
// Add the rest of your routes here.
};
foreach ( var adminRoute in adminRoutes )
{
RegisterAdminRoute( adminRoute[0], adminRoute[1], adminRoute[2], adminRoute[3] );
}
}
public static void RegisterAdminRoute( string area, string idName, string actionName, string action )
{
RouteTable.Routes.MapRoute
(
area + actionName,
String.Format( "Administration/Corporate/{{controller}}/{{Id}}/{0}/{{{1}}}/{2}",
area,
idName,
actionName ),
new { action }
);
}
我喜欢那不祥的空身体。