سؤال

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?

هل كانت مفيدة؟

المحلول

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top