2009-08-24 14 views
1

Ich habe eine MVC-Ansicht, die ein Modell verwendet, und ich bin nach dem Einfügen von etwas HTML für zusätzlichen Inhalt, der nicht Teil des Modells ist.asp.net MVC HTML-Injektion

Ich kenne den Inhalt der injizierten HTML oder Textfelder nicht, da sie Plugins sein werden.

Wie kann ich die Änderungen sowohl am vorhandenen Modell abgreifen als auch die Plug-in-HTML-Felder erfassen?

Antwort

2

können Sie eine Htmlhelper-Erweiterung verwenden, um dies zu tun, wenn Sie wollen:

namespace MyExtensions 
{ 
    public static class HtmlHelperExtensions 
    { 
     pubilc static string EmitPluginData(this HtmlHelper htmlHelper) 
     { 
      var pluginData = GetPluginDataFromSomeWhere(); 
      return pluginData; 
     } 
    } 
} 

Dann Sie diese in Ihre Ansichten verwenden können:

<html> 
<body> 
    <%= ViewData["SomeData"] %> 
    <%= Html.EmitPluginData() %> 
</body> 
</html> 

Nur nicht vergessen, den Namespace in den Ihre web.config:

<pages> 
     <namespaces> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="MyExtensions" /> 
     ... 
3

Render von den MvcFutures ist wirklich praktisch für dieses und fühlt sich ein bisschen sauberer als mit HtmlHelpers mit intime Kenntnis Ihrer Plugin-Architektur IMHO.