从控制器返回PartialView和Javascript [英] Return PartialView and Javascript from Controller

查看:133
本文介绍了从控制器返回PartialView和Javascript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看到有一个问题,<一个href=\"http://stackoverflow.com/questions/756797/returning-a-partialview-with-both-html-and-javascript\">here但目前还没有明确的答案。有没有人任何想法如何使用JavaScript或JSON返回PartialView。我做一个AJAX后,成功它呈现PartialView但需要运行一些JavaScript或检查JSON结果。


解决方案

 公共静态字符串RenderPartialToString(字符串控件名称,对象的ViewData,对象模型,System.Web.Routing.RequestContext viewContext)
            {                的ViewDataDictionary VD =新的ViewDataDictionary(可视数据);
                VP的ViewPage =新的ViewPage {= ViewData的VD};                vp.ViewData = VD;
                vp.ViewData.Model =模型;
                vp.ViewContext =新ViewContext();
                vp.Url =新UrlHelper(viewContext);                控制控制= vp.LoadControl(控件名称);                vp.Controls.Add(对照组);                StringBuilder的SB =新的StringBuilder();                使用(StringWriter的SW =新的StringWriter(某人))
                {                    使用(HtmlTextWriter的TW =新的HtmlTextWriter(SW))
                    {                        vp.RenderControl(TW);                    }                }                返回sb.ToString();            }

I see there is a question here but there is no definite answer. Has anyone any ideas how to return a PartialView with Javascript or JSON. I am doing an AJAX post, on success it renders the PartialView but then needs to run some javascript or check the JSON result.

解决方案

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

            }

这篇关于从控制器返回PartialView和Javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆