从Controller返回PartialView和Javascript

时间:2009-05-26 11:16:00

标签: jquery asp.net-mvc

我看到有一个问题here,但没有明确的答案。有任何想法如何返回使用Javascript或JSON的PartialView。我正在做一个AJAX帖子,成功后它渲染了PartialView,但后来需要运行一些javascript或检查JSON结果。

2 个答案:

答案 0 :(得分:1)

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();

            }

答案 1 :(得分:0)

我认为为其他问题提供的答案可能是您最好的选择。您不能突然有另一个onSuccess方法签名,其中另一个参数与JSON对象一起添加,因此您会遇到一个返回对象。从逻辑上讲,此对象必须包含您的视图和JSON对象,这意味着对象本身必须是JSON对象。