【问题标题】:Problem with razor view and mvccontrib grid pagination剃刀视图和 mvccontrib 网格分页的问题
【发布时间】:2010-12-29 23:59:11
【问题描述】:

我有以下部分视图代码

@model IEnumerable<PDoc.Web.Models.UserDocModel>
@using MvcContrib.UI.Grid;
@using MvcContrib.UI.Pager;
@using MvcContrib.Pagination;

<div id="docList">
@Html.Grid(Model).Columns( column => {
    column.For( u => u.Description ).Named( "Description" );
    column.For( u => u.FileName ).Named( "File name" );
    column.For( u => u.FileSize ).Named( "Size" );
    column.For( u => u.UploadDate.ToShortDateString() ).Named( "Upload Date" );
    } ).Attributes( @class => "table-list" ).Empty( "No documents uploaded" )

    <div style="position:absolute; bottom: 3px; width: 95%;">
        @Html.Pager( (IPagination)Model )..First( "First" ).Next( "Next" ).Previous( "Previous" ).Last( "Last" ).Format( "{0}-{1} di {2}" )
    </div>
</div>

这会为分页呈现编码的 html,如下面使用 Chrome 开发者工具复制的 sn-p 中所示

<div id="myDocs">
  <div id="docList">
     <table class="table-list">...</table>
     <div style="position:absolute; bottom: 3px; width: 95%;">
        &lt;div class='pagination'&gt;&lt;span class='paginationLeft'&gt;1-1 di 1&lt;/span&gt;&lt;/div&gt;
    </div>
</div>

为什么?

同样使用 Chrome DT,我可以看到编码标记周围有两个双引号。这只是一种显示编码的方式吗?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 razor mvccontrib mvccontrib-grid


    【解决方案1】:

    我认为它正在被双重编码。如果您将 Html.Pager 内容放在 Html.Raw() 方法中,它应该可以工作。

    【讨论】:

    • Razor 自动对所有内容进行编码。内置的 Html 方法现在返回说明这一点的 MvcHtmlStrings。您使用的 Html.Pager 方法可能会返回一个纯字符串,该字符串是 Razor 编码的。
    • @Html.Raw(Html.Pager(Model).First("First").Next("Next").Previous("Previous").Last("Last").Format( "{0}-{1} di {2}" ).ToString()) 将是供参考的语法。
    • 看起来 MVC 3 - 3.0.51.0 版本的 Contrib 库不需要这个解决方案,只需使用 @Html.Pager()。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    相关资源
    最近更新 更多