2009-08-24 3 views
1

У меня есть MVC-представление, которое использует модель, и я после ввода некоторого HTML-кода для дополнительного контента, который не является частью модели.asp.net MVC HTML injection

Я не знаю содержание введенных HTML или текстовых полей, поскольку они будут плагинами.

Как я могу подобрать изменения как для существующей модели, так и для захвата плагинов HTML-полей?

ответ

2

вы можете использовать расширение HtmlHelper, чтобы это сделать, если вы хотите:

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

Затем вы можете использовать это в ваших просмотров:

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

Только не забудьте добавить пространство имен ваш 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

RenderAction из MvcFutures очень удобна для этого и чувствует себя немного чище, чем с HtmlHelpers с глубоким знанием вашей архитектуры плагина IMHO.

Смежные вопросы