2012-03-16 15 views
0

私の見解では、複数のtelerik MVCグリッドレンダリングがあります。 しかし、私は1つだけに問題があります。MVCへのバインディングモデルTelerik Grid throwエラー(ControllerContext Null Exception)

モデルがpartialviewにバインドする方法に違いはありません。

この例外は、それを修正する手がかりを与えるものではありません。

Value cannot be null. 
Parameter name: controllerContext 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ArgumentNullException: Value cannot be null. 
Parameter name: controllerContext 

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 


[ArgumentNullException: Value cannot be null. 
Parameter name: controllerContext] 
    System.Web.Mvc.ChildActionValueProviderFactory.GetValueProvider(ControllerContext controllerContext) +547459 
    System.Web.Mvc.<>c__DisplayClassc.<GetValueProvider>b__7(ValueProviderFactory factory) +34 
    System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +151 
    System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +87 
    System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +327 
    System.Linq.Enumerable.ToList(IEnumerable`1 source) +58 
    System.Web.Mvc.ValueProviderFactoryCollection.GetValueProvider(ControllerContext controllerContext) +281 
    System.Web.Mvc.ControllerBase.get_ValueProvider() +40 

[TargetInvocationException: Exception has been thrown by the target of an invocation.] 
    System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner) +0 
    System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner) +72 
    System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +335 
    System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +28 
    System.Web.SecurityUtils.MethodInfoInvoke(MethodInfo method, Object target, Object[] args) +159 
    System.Web.Script.Serialization.JavaScriptSerializer.SerializeCustomObject(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) +482 
    System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) +1424 
    System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) +194 
    System.Web.Script.Serialization.JavaScriptSerializer.SerializeEnumerable(IEnumerable enumerable, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) +126 
    System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) +1380 
    System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) +194 
    System.Web.Script.Serialization.JavaScriptSerializer.SerializeDictionary(IDictionary o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) +527 
    System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) +1319 
    System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) +194 
    System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, StringBuilder output, SerializationFormat serializationFormat) +26 
    System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, SerializationFormat serializationFormat) +74 
    System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj) +6 
    System.Web.Mvc.JsonResult.ExecuteResult(ControllerContext context) +216 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +13 
    System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +23 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +260 
    System.Web.Mvc.<>c__DisplayClass1e.<InvokeActionResultWithFilters>b__1b() +19 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +177 
    System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343 
    System.Web.Mvc.Controller.ExecuteCore() +116 
    System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97 
    System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10 
    System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37 
    System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21 
    System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12 
    System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62 
    System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +50 
    System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7 
    System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22 
    System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60 
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8969117 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184 




-------------------------------------------------------------------------------- 
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272 

更新


コントローラー:

[GridAction] 
      public ActionResult CopaySummaryLevel(int PBMID) 
      { 
       CopayModel cModel = new CopayModel(); 
       List<CopayModel> _CopayModel = cModel.GetSummaryLevelCopay(PBMID); 
       return PartialView("_CopayGridSummaryLevel", new GridModel<CopayModel> 
       { 
        Data = _CopayModel 
       }); 
      } 

ビュー:

@model IEnumerable<HRORx.Models.BenefitsFormularyModel> 
@using Telerik.Web.Mvc.UI 
<h4> 
    Summary Level Copay</h4> 
@(Html.Telerik().Grid<HRORx.Models.CopayModel>() 
      .Name("CopaySummaryLevel") 
     .Columns(columns => 
     { 
      //columns.Bound(e => e.PharmacyType).Title("Pharmacy Type"); 
      columns.Bound(e => e.OutOfPocketRangeStart);//.Title("OP Start"); 
      //columns.Bound(e => e.OutOfPocketRangeEnd).Title("OP End"); 
      //columns.Bound(e => e.FlatCopayAmount).Title("Flat Fee"); 
      //columns.Bound(e => e.PercentCopayRate).Title("% Copay"); 
      //columns.Bound(e => e.MinimumCopay).Title("Min. Copay"); 
      columns.Bound(e => e.MaximumCopay);//.Title("Max. Copay");//.Format("{0:c}") 
     }) 
    .ClientEvents(events => events.OnRowDataBound("Record_onRowDataBound")) 
     .ClientEvents(ev => ev.OnComplete("ShowOrHide")) 
           .DataBinding(dataBinding => dataBinding.Ajax().Select("CopaySummaryLevel", "BenefitsFormulary", new { PBMID = Model.FirstOrDefault().HealthPlanMappingID })) 
     .Pageable(paging => paging.PageSize(3)) 
     .NoRecordsTemplate("No Summary Level Copy Information is available for this Medication.") 
     .Sortable() 
) 

スクリプト:

function Record_onRowDataBound(e) { 
    var grid = $(this).data('tGrid'); 
} 
+2

は、あなたの閲覧のためのコードと、それをレンダリングするコントローラのアクションを投稿することができますか? –

+1

@CDSmithコントローラとビューのコードで質問を更新しました。 – HaBo

答えて

1

まあ私はこれを修正しました。
私の答えが似たような問題のあなたに役立つことを願っています。

解決策:モデル

public class MyModel:Controller 
{ 
} 

へのコントローラクラスを継承

避けてください:コントローラ

関連する問題