我一直在尝试使用ActionFilter将TempData传递给动作:
filterContext.Controller.TempData.Add("Key","Value");
Run Code Online (Sandbox Code Playgroud)
但是,似乎没有TempData传递给操作,因为我不断收到Object not referenced to an instance of the object错误.
这是从ActionFilter将TempData传递给控制器的正确方法吗?如果没有,我该怎么做?
Kar*_*sla 10
这将有效: -
答案1:
过滤器: -
public class MyCustomAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.RouteData.Values.Add("Key","Value");
}
}
Run Code Online (Sandbox Code Playgroud)
控制器: -
[MyCustom]
public ActionResult Index()
{
TempData["Key"] = RouteData.Values["Key"];
return View();
}
Run Code Online (Sandbox Code Playgroud)
答案2:
过滤器: -
public class MyCustomAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.Controller.TempData.Add("Key","Value");
}
}
Run Code Online (Sandbox Code Playgroud)
控制器: -
[MyCustom]
public ViewResult Index()
{
string Tempval = TempData["Key"].ToString();
return View();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4217 次 |
| 最近记录: |