Example #1
0
        public static PartialViewResult PartialExtView(this System.Web.Mvc.Controller controller,
                                                       string viewName             = null,
                                                       ViewDataDictionary viewData = null,
                                                       object model = null,
                                                       TempDataDictionary tempData = null,
                                                       IDMode idMode                    = IDMode.Static,
                                                       string controlId                 = null,
                                                       string containerId               = null,
                                                       int index                        = 0,
                                                       string ns                        = null,
                                                       RenderMode mode                  = RenderMode.RenderTo,
                                                       bool wrapByScriptTag             = true,
                                                       bool singleControl               = false,
                                                       bool items                       = false,
                                                       string controlToRender           = null,
                                                       bool clearContainer              = false,
                                                       Container.Config containerConfig = null)
        {
            PartialViewResult result = new PartialViewResult();

            if (model != null)
            {
                controller.ViewData.Model = model;
            }

            result.ViewName = viewName;
            result.ViewData = viewData ?? controller.ViewData;
            result.TempData = tempData ?? controller.TempData;

            result.IDMode          = idMode;
            result.ControlId       = controlId;
            result.ContainerId     = containerId;
            result.Index           = index;
            result.Namespace       = ns;
            result.RenderMode      = mode;
            result.WrapByScriptTag = wrapByScriptTag;
            result.SingleControl   = singleControl;
            result.Items           = items;
            result.ControlToRender = controlToRender;
            result.ContainerConfig = containerConfig;
            result.ClearContainer  = clearContainer;

            return(result);
        }
        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="htmlHelper"></param>
        ///// <param name="partialViewName"></param>
        ///// <param name="viewData"></param>
        ///// <param name="model"></param>
        ///// <param name="tempData"></param>
        ///// <param name="idMode"></param>
        ///// <param name="id"></param>
        ///// <returns></returns>
        //public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData, object model, TempDataDictionary tempData, IDMode idMode, string id)
        //{
        //    if (String.IsNullOrEmpty(partialViewName))
        //    {
        //        throw new ArgumentException("Value cannot be null or empty.", "partialViewName");
        //    }

        //    return new PartialViewRenderer().Render(htmlHelper.ViewContext, partialViewName, viewData, model, tempData, idMode, id);
        //}

        /// <summary>
        /// Renders the partial view with the parent's view data
        /// </summary>
        /// <param name="htmlHelper"></param>
        /// <param name="partialViewName"></param>
        /// <param name="viewData"></param>
        /// <param name="model"></param>
        /// <param name="tempData"></param>
        /// <param name="idMode"></param>
        /// <param name="controlId"></param>
        /// <param name="containerId"></param>
        /// <param name="index"></param>
        /// <param name="ns"></param>
        /// <param name="mode"></param>
        /// <param name="wrapByScriptTag"></param>
        /// <param name="singleControl"></param>
        /// <param name="items"></param>
        /// <param name="controlToRender"></param>
        /// <param name="containerConfig"></param>
        /// <returns></returns>
        public static IHtmlString ExtPartial(this HtmlHelper htmlHelper,
                                             string partialViewName,
                                             ViewDataDictionary viewData = null,
                                             object model = null,
                                             TempDataDictionary tempData = null,
                                             IDMode idMode                    = IDMode.Static,
                                             string controlId                 = null,
                                             string containerId               = null,
                                             int index                        = 0,
                                             string ns                        = null,
                                             RenderMode mode                  = RenderMode.RenderTo,
                                             bool wrapByScriptTag             = true,
                                             bool singleControl               = false,
                                             bool items                       = false,
                                             string controlToRender           = null,
                                             Container.Config containerConfig = null)
        {
            if (String.IsNullOrEmpty(partialViewName))
            {
                throw new ArgumentException("Value cannot be null or empty.", "partialViewName");
            }

            string divId = null;

            if (containerId.IsEmpty() && mode == RenderMode.RenderTo)
            {
                containerId = BaseControl.GenerateID();
                divId       = containerId;
            }

            PartialViewResult result = new PartialViewResult();

            result.WriteToString = true;

            result.ViewName = partialViewName;

            result.ViewData = viewData ?? htmlHelper.ViewData;

            if (model != null)
            {
                result.ViewData.Model = model;
            }

            if (tempData != null)
            {
                result.TempData = tempData;
            }

            result.IDMode          = idMode;
            result.ControlId       = controlId;
            result.ContainerId     = containerId;
            result.Index           = index;
            result.Namespace       = ns;
            result.RenderMode      = mode;
            result.WrapByScriptTag = wrapByScriptTag;
            result.SingleControl   = singleControl;
            result.Items           = items;
            result.ControlToRender = controlToRender;
            result.ContainerConfig = containerConfig;

            result.ExecuteResult(htmlHelper.ViewContext);

            if (divId != null)
            {
                return(new HtmlString(string.Format("<div id=\"{0}\"></div>{1}", divId, result.Output)));
            }

            return(new HtmlString(result.Output));
        }