在具有常规视图引擎的 MVC 2 中,我可以通过字符串返回 ascx 部分视图return Json()
但是对于新的 Razor .cshtml 视图,我无法弄清楚如何做到这一点。我不断得到Type 'ASP.CustomerForm_cshtml' does not inherit from 'System.Web.UI.UserControl'.
部分视图继承自,如果我继承自第一个错误所说System.Web.Mvc.WebViewPage<T>
,则会弹出另一个错误。System.Web.UI.UserControl<T>
关于如何使用 ASP MVC 3 和 Razor 视图引擎解决此问题的任何想法?
这是我的 ControlToString 函数:
private string ControlToString(string controlPath, object model)
{
ViewPage page = new ViewPage();
ViewUserControl ctl = (ViewUserControl)page.LoadControl(controlPath);
page.Controls.Add(ctl);
page.ViewData.Model = model;
page.ViewContext = new ViewContext();
System.IO.StringWriter writer = new System.IO.StringWriter();
System.Web.HttpContext.Current.Server.Execute(page, writer, false);
string outputToReturn = writer.ToString();
writer.Close();
//return this.Json(outputToReturn.Trim());
return outputToReturn.Trim();
}