gpt4 book ai didi

c# - ASP.NET MVC 3 自定义操作过滤器 - 如何将传入模型添加到 TempData?

转载 作者:行者123 更新时间:2023-11-30 15:08:25 25 4
gpt4 key购买 nike

我正在尝试构建一个自定义操作过滤器,该过滤器从过滤器上下文中获取传入模型,将其添加到临时数据,然后执行“其他操作”。

我的操作方法如下所示:

[HttpPost]
[MyCustomAttribute]
public ActionResult Create(MyViewModel model)
{
// snip for brevity...
}

现在,我想将 model 添加到 TempData 模型绑定(bind)启动并将表单值集合转换为MyViewModel

我该怎么做?

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!filterContext.Controller.ViewData.ModelState.IsValid)
return;

var model = filterContext.????; // how do i get the model-bounded object?
filterContext.TempData.Add(someKey, model);
}

最佳答案

明白了 - 希望这是正确的做法:

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (!filterContext.Controller.ViewData.ModelState.IsValid)
return;

var model = filterContext.ActionParameters.SingleOrDefault(ap => ap.Key == "model").Value;
if (model != null)
{
// Found the model - add it to tempdata
filterContext.Controller.TempData.Add(TempDataKey, model);
}
}

关于c# - ASP.NET MVC 3 自定义操作过滤器 - 如何将传入模型添加到 TempData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5616653/

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