Javascript 使用HTML.Hidden helper和字符串的部分视图时的空引用

Javascript 使用HTML.Hidden helper和字符串的部分视图时的空引用,javascript,c#,html,asp.net,asp.net-mvc,Javascript,C#,Html,Asp.net,Asp.net Mvc,我试图获取一个局部视图并返回一个html字符串表示,这样我就可以在ajax请求中传递它,并将div标记设置为.html() 在部分的顶部,我添加了隐藏值@html.hidden()和@html.HiddenFor()的html属性,以将这些值存储在html中 错误在底部 我试图找出我的模型中是否有空值 将部分转换为HTML字符串的代码 public static string RenderViewToString(ControllerContext context, string

我试图获取一个局部视图并返回一个html字符串表示,这样我就可以在ajax请求中传递它,并将div标记设置为.html()

在部分的顶部,我添加了隐藏值@html.hidden()和@html.HiddenFor()的html属性,以将这些值存储在html中

错误在底部

我试图找出我的模型中是否有空值

将部分转换为HTML字符串的代码

        public static string RenderViewToString(ControllerContext context, string viewName, object model)
        {
            if (string.IsNullOrEmpty(viewName))
            {
                viewName = context.RouteData.GetRequiredString("action");
            }

            var viewData = new ViewDataDictionary(model);

            using (var sw = new StringWriter())
            {
                var viewResult = ViewEngines.Engines.FindPartialView(context, viewName);
                var viewContext = new ViewContext(context, viewResult.View, viewData, new TempDataDictionary(), sw);
                viewResult.View.Render(viewContext, sw);

                return sw.GetStringBuilder().ToString();
            }
        }
这是我的部分观点

@using WebPortal.MVC.Utilities.Controls;
@model WebPortal.MVC.Models.Controls.DxGridView.DxGridViewControlModel


@Html.Hidden("dxGridName", Model.Name)
@Html.Hidden("dxGridId", Model.Id)
@Html.Hidden("dxPageSize", Model.Paging.PageSize)
@Html.HiddenFor(x => x.HasFilterRowFunctionality)
@Html.HiddenFor(x => x.HasRefreshFunctionality)
@Html.HiddenFor(x => x.HasHeaderFilterFunctionality)
@Html.HiddenFor(x => x.HasSavedLayoutFunctionality)
@Html.HiddenFor(x => x.HasExportToSpreadsheetFunctionality)
@Html.HiddenFor(x => x.HasExportFunctionality)
@Html.HiddenFor(x => x.OnLoadGridLayoutId)
@Html.HiddenFor(x => x.ConvertDateTimeToLocal)
@Html.HiddenFor(x => x.HeightAdjust)
@Html.HiddenFor(x => x.KeyFieldName)
@Html.HiddenFor(x => x.CurrentUserId)

<div class="dxgridControlContainer">
    @(Html.DevExtreme()
                .DataGrid<WebPortal.MVC.Models.Controls.DxGridView.DxGridViewControlModel>()
                .ID(Model.Id)
                .Width("100%")
                .Height("700px"))
</div>
@使用WebPortal.MVC.Utilities.Controls;
@模型WebPortal.MVC.Models.Controls.DxGridView.DxGridViewControlModel
@Html.Hidden(“dxGridName”,Model.Name)
@隐藏(“dxGridId”,Model.Id)
@隐藏(“dxPageSize”,Model.Paging.PageSize)
@Html.HiddenFor(x=>x.HasFilterRowFunctionality)
@Html.HiddenFor(x=>x.hasrefresh功能)
@Html.HiddenFor(x=>x.hasheaderFilterFunction)
@Html.HiddenFor(x=>x.HasSavedLayoutFunctionality)
@Html.HiddenFor(x=>x.HasExportToSpreadsheetFunctionality)
@Html.HiddenFor(x=>x.hasExportFunction)
@Html.HiddenFor(x=>x.OnLoadGridLayoutId)
@Html.HiddenFor(x=>x.ConvertDateTimeToLocal)
@Html.HiddenFor(x=>x.HeightAdjust)
@Html.HiddenFor(x=>x.KeyFieldName)
@Html.HiddenFor(x=>x.CurrentUserId)
@(Html.DevExtreme()
.DataGrid()
.ID(Model.ID)
.宽度(“100%”)
.高度(“700px”))
我希望这个部分能够转换成HTML字符串,而不会出现以下错误

如果删除部分视图中的所有@Html.Hidden()和@Html.HiddenFor(),则效果非常理想

我需要这些值出现在页面上,以便在java脚本中使用它们

或者是否有更好的方法将值放置在页面上,以便我可以使用它们?执行隐藏或隐藏操作会导致某些错误处理失败

任何帮助都将不胜感激

错误:


System.NullReferenceException:对象引用未设置为对象的实例。在System.Web.WebPages.Scope.AspNetRequestScopeStorageProvider.get_RequestScopeInternal()在System.Web.WebPages.Scope.AspNetRequestScopeStorageProvider.get_CurrentScope()在System.Web.Mvc.PreApplicationStartCode.c.b_1_0()在System.Web.Mvc.ViewContext.get_Scope()在System.Web.Mvc.ViewContext.get_Scope()在System.Web.Mvc.ViewContext位于System.Web.Mvc.Html.InputExtensions.InputHelper的System.Web.Mvc.HtmlHelper.GetUnobusiveValidationAttribute(字符串名称、模型元数据)(HtmlHelper HtmlHelper、InputType InputType、ModelMetadata元数据、字符串名称、对象值、Boolean useViewData、Boolean isChecked、Boolean setId、Boolean isExplicitValue、字符串格式、IDictionary
2 htmlAttributes)位于System.Web.Mvc.Html.InputExtensions.HiddenHelper(HtmlHelper HtmlHelper,模型元数据,对象值,布尔useViewData,字符串表达式,IDictionary
2 htmlAttributes)位于System.Web.Mvc.Html.InputExtensions.HiddenFor[TModel,TProperty](HtmlHelper
1 HtmlHelper,表达式
1表达式,IDictionary
2 htmlAttributes)在ASP.的System.Web.Mvc.Html.InputExtensions.HiddenFor[TModel,TProperty](HtmlHelper
1 HtmlHelper,Expression
1 Expression)中,在MyPartialridView\\DxGridViewControlPartial.cshtml中,在System.Web.WebPages.WebPages.ExecutePageHierarchy()中的第8行位于System.Web.WebPages.WebPages.WebPages.WebPages.ExecutePageHierarchy()处的System.Web.Mvc.WebViewPage.ExecutePageHierarchy()处的System.Web.Mvc.RazorView.RenderView(ViewContext ViewContext,TextWriter writer,Object instance)在WebPortal.Mvc.Utilities.ViewHelper.RenderViewToString(ControllerContext context,String viewName,Object model)中的System.Web.Mvc.buildmanager compiledview.Render(ViewContext ViewContext,TextWriter writer)在WebPortal.Mvc.Areas.DataVisualization.Controllers.DataVisualizationController.d_u2.MoveNext()中的第31行在Controller.cs中:第71行---在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务任务)在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务任务)中从引发异常的上一个位置开始的堆栈结束跟踪在System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult)在System.Web.Mvc.Async.Async.AsyncControllerActionInvoker.c_u在System.Web.Mvc.Async.asyncResult asyncResult.WrappedAsyncResult上显示类8_0.b_1(IAsyncResult asyncResult asyncResult asyncResult)System.Web.Mvc.Async.asyncResult Async.AsyncResultRapper.WrappedAsyncResultBase
1.End()位于System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult asyncResult)位于System.Web.Mvc.AsyncControllerActionInvoker.AsyncInvokWithFilters.c_uDisplayClass11_0.b_u0()System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvokwithFilters.c_uuDisplayClass11_2.b_u2()位于System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvokwithFilters.c_uDisplayClass11_2.b_u2()位于System.Web.Mvc.Async.AsyncControllerActionInvoker.c.c_uDisplayClass7_0.b_u1(IAsyncResult asyncResult asyncResult)位于System.Web.Mvc.Async.AsyncResultRapper.WrappedAsyncResult
1.CallEndDelegate(IAsyncResult asyncResult)位于System.Web.Mvc.Async.AsyncResultRapper.WrappedAsyncResultBase`1.End(),位于System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)在System.Web.Mvc.Async.AsyncControllerActionInvoker.c_uuDisplayClass3_6.b_u4()在System.Web.Mvc.Async.AsyncControllerActionInvoker.c_uDisplayClass3_1.b_u1(IAsyncResult asyncResult)

尝试调用
viewResult.ViewEngine.ReleaseView(ControllerContext,viewResult.View)
之后