Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET MVC 2中将视图呈现为字符串_C#_.net_Asp.net Mvc_Viewrendering - Fatal编程技术网

C# 在ASP.NET MVC 2中将视图呈现为字符串

C# 在ASP.NET MVC 2中将视图呈现为字符串,c#,.net,asp.net-mvc,viewrendering,C#,.net,Asp.net Mvc,Viewrendering,我们需要将ActionResult呈现为字符串,以便将页面添加到我们的内部搜索引擎索引中。我们决定了 用于处理视图的executesult调用遇到问题 代码段: 我收到以下错误: “对象引用未设置为对象实例”错误。 我已确认viewResult不为空,因此必须在executesult中内部引发异常 我们可能遗漏了什么?我自己也没有尝试过,但我确实提出了一种在考虑MVC的情况下实现这一点的方法。这可能对这种情况很有帮助。不是对您的问题的直接回答,但为什么您要将整个视图作为字符串呈现到搜索索引中,而

我们需要将
ActionResult
呈现为
字符串
,以便将页面添加到我们的内部搜索引擎索引中。我们决定了

用于处理视图的
executesult
调用遇到问题

代码段: 我收到以下错误:

“对象引用未设置为对象实例”错误。

我已确认
viewResult
不为空,因此必须在
executesult
中内部引发异常


我们可能遗漏了什么?

我自己也没有尝试过,但我确实提出了一种在考虑MVC的情况下实现这一点的方法。

这可能对这种情况很有帮助。

不是对您的问题的直接回答,但为什么您要将整个视图作为字符串呈现到搜索索引中,而不是a)将数据本身推到索引中(LINQ to Lucene允许您使用属性进行此操作)或b)将工作卸载到一个单独的进程,该进程使用一些权限集对前端进行爬网

我明白了。ExecuterSult的问题没有按预期工作,因为我没有正确地模拟ControllerContext。我通过模仿controllercontext解决了这个问题,如本文所述:


希望这篇文章能帮助将来有人尝试做类似的事情。

Spark提供了渲染视图,可以让你轻松自如,减少摩擦。:)是的,但是将我们所有的视图移植到Spark并不实际。是的,但是在与MVC2 RC2兼容的最新版本MVCContrib中,BlockRenderer类似乎已经被弃用。
var oldController = controllerContext.RouteData.Values["controller"];
controllerContext.RouteData.Values["controller"] = 
                  typeof(TController).Name.Replace("Controller", "");

viewResult.ExecuteResult(controllerContext); // this line breaks