C# 创建HtmlHelper<;T>;内部控制器
我在控制器()中创建了一个C# 创建HtmlHelper<;T>;内部控制器,c#,asp.net-mvc,C#,Asp.net Mvc,我在控制器()中创建了一个HtmlHelper 这就是我到目前为止所做的: public static HtmlHelper<TData> CreatePseudoHelper<TData>(this Controller Source, TData Model) { Source.ViewData.Model = Model; return new HtmlHelper<TData>(new ViewContext(Source.Contro
HtmlHelper
这就是我到目前为止所做的:
public static HtmlHelper<TData> CreatePseudoHelper<TData>(this Controller Source, TData Model)
{
Source.ViewData.Model = Model;
return new HtmlHelper<TData>(new ViewContext(Source.ControllerContext, new PseudoView(), Source.ViewData, Source.TempData, TextWriter.Null), new ViewPage());
}
public class PseudoView : IView
{
public void Render(ViewContext Context, TextWriter Writer)
{
throw new InvalidOperationException("Cannot render a pseudo view.");
}
}
public static HtmlHelper CreatePseudoHelper(此控制器源,TData模型)
{
Source.ViewData.Model=模型;
返回新的HtmlHelper(新的ViewContext(Source.ControllerContext,new PseudoView(),Source.ViewData,Source.TempData,TextWriter.Null),新的ViewPage());
}
公共类伪视图:IView
{
公共void呈现(ViewContext上下文、TextWriter)
{
抛出新的InvalidOperationException(“无法呈现伪视图”);
}
}
但是,当返回创建的HtmlHelper
时,嵌入的ViewData
具有空模型。当我逐步执行时,模型
在设置为源代码的ViewData.Model
时肯定不是空的,但一旦用于创建HtmlHelper
,它就变为空
我错过了什么