Pergunta

I'm using MVC3 WebGrid, and got this simplest cshtml, that won't work

@model IEnumerable<MyNamespace.MyClass>
@{
    var grid = new WebGrid(source: Model);
}
@grid.GetHtml()

But this code, do work

@model IEnumerable<MyNamespace.MyClass>
@{
    var grid = new WebGrid(source: Model);
}

@MvcHtmlString.Create(grid.GetHtml().ToHtmlString())

Question: The first and simpler code renders as string instead of Html... what could possibly make the first code to fail, and obligates me to use the second way?

Foi útil?

Solução

Apparently someone who went through the project didn't know MVC already takes care of html characters rendered in the View...

We had in Web.Config:

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="MyNamespace.Views.MyViewPage">
      <namespaces>
        ...
      </namespaces>
    </pages>
</system.web.webPages.razor>

And MyViewPage was messing around some Helpers and other linstructions like Html.Raw

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top