如何在C# MVC的基础控制器(BaseController)类中获取requestContext.RouteData.Values字典中的'Id'键对应的值?
时间: 2024-10-25 12:08:19 浏览: 15
在C# ASP.NET MVC的基础控制器(BaseController)类中,你可以通过覆盖`OnActionExecuting`方法来获取`requestContext.RouteData.Values`字典中的特定键值。假设你想要获取名为`Id`的键,你可以这样做:
```csharp
public abstract class BaseController : Controller
{
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
// 检查RouteData是否存在并且包含Id键
if (filterContext?.RouteData != null && filterContext.RouteData.Values.ContainsKey("Id"))
{
int idValue = Int32.Parse(filterContext.RouteData.Values["Id"].ToString()); // 假设Id的值是整数
MyProperty = idValue; // 将Id值赋给你的属性,如public int MyProperty { get; set; }
// 或者,如果需要将值用于后续操作,可以将其放在私有变量中
_idValue = idValue;
}
}
}
```
在这个例子中,我们假设`Id`的值是一个整数,所以我们先尝试将其转换为`int`。然后,你可以在需要的地方从`MyProperty`或 `_idValue`访问这个ID值。
阅读全文