컨트롤러의 동작 메서드에 사용자 지정 필터를 전달하고 싶습니다. 그런 식으로 정의하려고합니다. 내가 작업을 실행할 때컨트롤러 작업에 대리인을 전달할 수 있습니까?
public ActionResult GetResult(Func<Fault,bool> filter)
{
List<Fault> faultList;
using (var _context = new myDB())
{
faultList =
from f in _context.Faults
where filter(f)
select f;
}
return Json(faultList);
}
는하지만 오류이 개체에 대해 정의
어떤 매개 변수가없는 생성자를 얻을 수 없습니다.
System.RuntimeTypeHandle.CreateInstance에서 (RuntimeType이 유형 부울 publicOnly 부울 NOCHECK 부울 & canBeCached, RuntimeMethodHandleInternal & ctor에 부울 & bNeedSecurityCheck) System.RuntimeType.CreateInstanceSlow (부울 publicOnly 부울 skipCheckThis 부울 fillCache, StackCrawlMark &에서 System.Activator.CreateInstance (Type 형식, 부울 nonPublic)의 System.RuntimeType.CreateInstanceDefaultCtor (부울 publicOnly, 부울 skipCheckThis, 부울 fillCache, StackCrawlMark & stackMark)에서 System.Web. System.Web.Mvc에서 Mvc.DefaultModelBinder.CreateModel (ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType)입니다. System.Web.Mvc.DefaultModelBinder.BindModel (ControllerContext controllerContext, ModelBindingContext bindingContext)에서 System.Web.Mvc.ControllerActionInvoker.GetParameterValue (ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) System.Web.Mvc의 DefaultModelBinder.BindComplexModel (ControllerContext controllerContext, ModelBindingContext bindingContext) .ControllerActionInvoker.GetParameterValues (ControllerContext controllerContext, ActionDescriptor actionDescriptor) System.Web.Mvc.ControllerActionInvoker.InvokeAction (ControllerContext controllerContext, String actionName) at System.Web.Mvc.Controller.ExecuteCore() at System.Web.Mvc.ControllerBase.Execute (RequestContext requestContext)에서 System.Web.Mvc.MvcHandler의 System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute (RequestContext requestContext)를 호출합니다. <> c_ DisplayClass6. <> c _DisplayClassb.b_ 5() at System.Web.Mvc.Async.AsyncResultWrapper. <> c _DisplayClass1.b_ 0() at System.Web.Mvc.Async.AsyncResultWrapper. <> c _DisplayClass8
1.b__7(IAsyncResult _) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult
System.Web.Mvc.MvcHandler에서 1.End()입니다. <> c_ DisplayClasse.b _d() at System.Web.Mvc.SecurityUtil.b__0 (동작 f), System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust (동작 동작), System.Web.Mvc.Handler.EndProcessRequest (동작 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()에서 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.IHttpAsyncHandler.EndProcessRequest (IAsyncResult 결과)에서 System.Web.Mvc.HttpApplication. ExecuteStep (IExecutionStep 단계, 부울 & 동기화 완료)
이와 비슷한 작업을 수행 할 수 있습니까?
대리인을 전달하지 않으면 다른 방법을 제안 할 수 있습니까?
당신은이 작업에 어떤 데이터를 보내려면 어떻게합니까? 어떻게'Func 필터'가 그 데이터를 만들어 낼 것으로 기대합니까? –
nemesv
나는 @ Html.Action ("GetResults", 새로운 {filter = (f => f.TypeID == 1)}) 또는 이와 비슷한 것을 생각하고 있었다. ... – Mortalus