对于我的几个控制器,我有一个实现常见操作的基类.
例如
- BaseAccountController有一个登录操作
- PublicAccountController继承自BaseAccountController并实现进一步的操作
--CorporateAccountController继承自BaseAccountController并实现进一步的操作
这给出了以下路线:
- BaseAccount/Login
- PublicAccount/Login
- CorporateAccount/Login
删除路由BaseAccount/Login的标准方法是什么,因为这不是必需的.我希望控制器上有一个属性:)
您可以为Base控制器使用以下自定义属性:
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false)]
public class ClosedAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.Result = new HttpStatusCodeResult(404);
}
}
Run Code Online (Sandbox Code Playgroud)
您将收到基本控制器路由的404 - BaseAccount/Login.但请确保Inherited属性为false(如示例中所示).
使用示例:
[Closed]
public class BaseAccountController : Controller
{
...
}
Run Code Online (Sandbox Code Playgroud)
您可以在此处阅读更多(如果需要)有关自定义操作过滤器的内容 - http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/understanding-action-filters-cs
| 归档时间: |
|
| 查看次数: |
1134 次 |
| 最近记录: |