Вернуть PartialView и Javascript из контроллера - PullRequest
1 голос
/ 26 мая 2009

Я вижу, здесь есть вопрос , но однозначного ответа нет. Кто-нибудь есть идеи, как вернуть PartialView с помощью Javascript или JSON. Я делаю пост AJAX, в случае успеха он рендерит PartialView, но затем ему нужно запустить какой-нибудь JavaScript или проверить результат JSON.

Ответы [ 2 ]

1 голос
/ 26 мая 2009
public static string RenderPartialToString(string controlName, object viewData, object model, System.Web.Routing.RequestContext viewContext)
            {

                ViewDataDictionary vd = new ViewDataDictionary(viewData);
                ViewPage vp = new ViewPage { ViewData = vd };

                vp.ViewData = vd;
                vp.ViewData.Model = model;
                vp.ViewContext = new ViewContext();
                vp.Url = new UrlHelper(viewContext);

                Control control = vp.LoadControl(controlName);

                vp.Controls.Add(control);

                StringBuilder sb = new StringBuilder();

                using (StringWriter sw = new StringWriter(sb))
                {

                    using (HtmlTextWriter tw = new HtmlTextWriter(sw))
                    {

                        vp.RenderControl(tw);

                    }

                }

                return sb.ToString();

            }
0 голосов
/ 26 мая 2009

Я думаю, что ответ на другой вопрос может быть вашим лучшим вариантом. Вы не можете внезапно получить другую сигнатуру onSuccess метода, где другой параметр добавляется с объектом JSON, поэтому вы застряли с одним возвращаемым объектом. Логически этот объект должен содержать как ваше представление, так и ваш объект JSON, что подразумевает, что сам объект должен быть объектом JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...