很长一段时间以来,我一直在使用 Scott Guthrie 在他的博客中提供的以下代码:
public class ViewManager
{
public static string RenderView(string path, object data)
{
Page pageHolder = new Page();
UserControl viewControl = (UserControl) pageHolder.LoadControl(path);
if (data != null)
{
Type viewControlType = viewControl.GetType();
FieldInfo field = viewControlType.GetField("Data");
if (field != null)
{
field.SetValue(viewControl, data);
}
else
{
throw new Exception("ViewFile: " + path + "has no data property");
}
}
pageHolder.Controls.Add(viewControl);
StringWriter result = new StringWriter();
HttpContext.Current.Server.Execute(pageHolder, result, false);
return result.ToString();
}
}
该object data
参数可以将数据动态加载到用户控件中,并且可以用于通过数组或类似的方式将多个变量注入到控件中。
此代码将触发控件中的所有正常事件。
你可以在这里读更多关于它的内容
问候杰斯珀豪格