В MVC 2 с обычным механизмом просмотра я мог возвращать частичное представление ascx в виде строки через return Json ()
Но с новыми представлениями Razor .cshtml я не могу выяснить, как это сделать. Я продолжаю получать Тип «ASP.CustomerForm_cshtml» не наследуется от «System.Web.UI.UserControl».
Частичное представление наследуется от System.Web.Mvc.WebViewPage
и другая ошибка появляется, если я наследую от System.Web.UI.UserControl
, как говорится в первой ошибке.
Есть мысли о том, как исправить это с помощью 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();
}