【问题标题】:How to make a pager with MVCContrib and Razor?如何使用 MVCContrib 和 Razor 制作寻呼机?
【发布时间】:2011-04-05 19:09:06
【问题描述】:

我有一个寻呼机如下:

@using MvcContrib.UI.Pager
@model MvcContrib.Pagination.IPagination

<p/>
  @Html.Pager(Model).First("First").Last("Last").Next("Next").Previous("Previous")
<p/>

而不是显示这个:

显示 1 - 10 10841 第一 | 上一页 |下一个 | 最后的

显示如下:

<div class='pagination'><span class='paginationLeft'>Showing 1 - 10 of 10841 </span><span class='paginationRight'>First | Previous | <a href="/Home/Events?page=2">Next</a> | <a href="/Home/Events?page=1085">Last</a></span></div>

我还从codeproject 下载了一个示例项目,但是当我运行它时,我遇到了同样的问题。

可能是什么问题?你们能帮帮我吗?

【问题讨论】:

  • 想指出具体问题吗? HTML 看起来不错,所以我不确定是什么问题。

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


【解决方案1】:

如果你返回一个字符串,Razor 会自动对 html 进行编码。如果您返回 IHtmlString,它将不会对 Html 进行编码。

pager 方法是否返回 String 而不是 IHtmlString?

尝试使用 Html.Raw。此方法会将 String 转换为 IHtmlString。

@Html.Raw(Html.Pager(Model).First("First").Last("Last").Next("Next").Previous("Previous"))

【讨论】:

  • 我必须这样做 @Html.Raw(Html.Pager(Model).First("First").Last("Last").Next("Next").Previous("Previous").ToString()) 但否则它对我有用!
【解决方案2】:

它在示例项目而不是您的项目中起作用的原因是,在示例项目中,他们在部分页面中使用@Html.Pager,然后在这样渲染时在主页上使用@{Html.RenderPartial();} 调用来自Pager 的渲染字符串输出为 html 而不是编码的 html。

如果您需要使用不带子页面的寻呼机,那么您需要将调用包装在 Html.Raw 中,正如 Linkgoron 建议的那样,Html.Pager 默认使用 ToString,它返回 string 而不是 @ 987654328@

【讨论】:

  • 您使用@Html.Raw(Html.Pager(...).ToString()) 的技术对我有用。 +1。
猜你喜欢
  • 2011-06-07
  • 1970-01-01
  • 2013-03-09
  • 1970-01-01
  • 1970-01-01
  • 2022-11-18
  • 2012-01-19
  • 2012-06-16
  • 1970-01-01
相关资源
最近更新 更多