C# html.hiddenfor在将控制器外部的视图呈现为字符串时出错

C# html.hiddenfor在将控制器外部的视图呈现为字符串时出错,c#,asp.net-mvc,razor,view,render,C#,Asp.net Mvc,Razor,View,Render,我需要在控制器外部进行服务器端页面渲染(无需请求)(我想在控制器外部渲染视图)。 为此,我需要一个假的HttpRequest来创建ControllerContext,这样我就可以使用razor.render()渲染视图并返回 stringWriter.ToString()使用信号集线器发送到客户端 因此,我使用此代码将partialview呈现为字符串 public class FakeController : Controller { } HttpRequest httpRequest

我需要在控制器外部进行服务器端页面渲染(无需请求)(我想在控制器外部渲染视图)。 为此,我需要一个假的
HttpRequest
来创建
ControllerContext
,这样我就可以使用
razor.render()渲染视图并返回
stringWriter.ToString()
使用信号集线器发送到客户端

因此,我使用此代码将partialview呈现为字符串

public class FakeController : Controller   { }

HttpRequest httpRequest = new HttpRequest("", new UriBuilder("http", "localhost", 10654, "/" + "SomeController/SomeAction").Uri.ToString(), "");
var routeData = new RouteData();
routeData.Values.Add("Controller", "SomeController");
routeData.Values.Add("Action", "SomeAction");
StringWriter stringWriter = new StringWriter();
HttpResponse httpResponse = new HttpResponse(stringWriter);
HttpContext httpContextMock = new HttpContext(httpRequest, httpResponse);
var _contextWrapper = new HttpContextWrapper(httpContextMock);

var controllerContext = new ControllerContext(new RequestContext(_contextWrapper , routeData), new FakeController());

string filePath = "~/Areas/Site/Views/Shared/SomePartialView.cshtml";
var razor = new RazorView(controllerContext, filePath, null, false, null);

razor.Render(new ViewContext(controllerContext, razor, new ViewDataDictionary(model), new TempDataDictionary(), stringWriter), stringWriter);
return stringWriter.ToString();
当代码试图呈现
@Html.HiddenFor(m=>m.property)

我犯了错误

source : System.Web.WebPages 
error  : Object reference not set to an instance of an object

但奇怪的是,我可以得到
@Model.property
值(我的意思是它不是空的)和其他模型属性(似乎只有@Html.HiddenFor或@Html.HiddenFor是问题所在)。

Model.property
中有什么?你试着给它一个值
Html.HiddenFor(m=>m.property,”,这不应该是问题,但请不要尝试lose@jamiedanqmodel.property是一个字符串value@Munzer没有什么改变。。。