Lorsque vous utilisez Je voudrais mettre en œuvre quelque chose de similaire. J'aimerais qu'il prenne le nom de la vue que vous souhaitez rendre, avec quelques autres variables, et rendre le contenu dans un conteneur. P> Par exemple: P> HTML.RenderPartial code> prend le nom de la vue que vous souhaitez rendre, et rend son contenu à cet endroit.
public static class WindowHelper
{
public static string Window(this HtmlHelper helper, string name, string viewName)
{
var sb = new StringBuilder();
sb.Append("<div id='" + name + "_Window' class='window'>");
//Add the contents of the partial view to the string builder.
sb.Append("</div>");
return sb.ToString();
}
}
3 Réponses :
Pourquoi ne pas créer une deuxième vue et avoir l'intérieur partiel à l'intérieur qui, passe le nom de passer comme vueData ou dans le modèle, etc.
Quelque chose comme: p>
<div id='<%= ViewData["Name"] + "_Window"%>' class='window'> <% Html.RenderPartial(ViewData["Name"]); %> </div>
Les extensions Renderpartiales sont programmées directement à l'objet de réponse ... Vous pouvez le voir dans le code source pour eux:
using System.Web.Mvc.Html; public static class WindowHelper { public static void Window(this HtmlHelper helper, string name, string viewName) { var response = helper.ViewContext.HttpContext.Response; response.Write("<div id='" + name + "_Window' class='window'>"); //Add the contents of the partial view to the string builder. helper.RenderPartial(viewName); response.Write("</div>"); } }
Nous réparons cela dans MVC 2. Vous pourrez appeler HTML.Partial () et obtenir le contenu réel de la vue comme chaîne. P>