我正在使用 ASP .NET Core 2.0 中的 WEB 应用程序,其中我有一个从 ExceptionFilterAttribute 继承的自定义 ExceptionAttribute 过滤器。
如何访问传递给 POST 调用中的操作的模型对象。
提到的方法传递了一个 ExceptionContext,但我找不到一种简单可靠的方法来从中获取 Model 对象并传递给 ViewResult。
我拥有的过滤器如下所示:
public class ApiCallExceptionAttribute: ExceptionFilterAttribute
{
private readonly IModelMetadataProvider _modelMetadataProvider;
public ApiCallExceptionAttribute(
IModelMetadataProvider modelMetadataProvider)
{
_modelMetadataProvider = modelMetadataProvider;
}
public override void OnException(ExceptionContext context)
{
//how can i accesss model object here and pass to ViewResult
result.ViewData = new ViewDataDictionary(_modelMetadataProvider,context.ModelState);
context.Result = result;
}
}
Run Code Online (Sandbox Code Playgroud)
控制器如下所示:
[HttpPost]
[ServiceFilter(typeof(ApiCallExceptionAttribute))]
public async Task<IActionResult> Activation(ActivationViewModel model)
{
//throw exception in controller content
}
Run Code Online (Sandbox Code Playgroud) 我尝试在Entity Framework中实现此SQL查询
select *
from students
where student.fieldid in (select fieldid from fields where groupid = 10)
Run Code Online (Sandbox Code Playgroud)
我想这是一种方法:
var fields = context.fields.where(t=>t.groupid = 10).toList();
var result = context.students.where(t=> fields.Contains(t.fieldid)).toList();
Run Code Online (Sandbox Code Playgroud)
但这不起作用!
有没有其他人试图做这样的事情?