如何使用MVCContrib和Razor制作寻呼机?

时间:2011-04-05 19:09:07

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

我有一个寻呼机如下:

@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下载了一个示例项目,但是当我运行它时,我遇到了同样的问题。

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

2 个答案:

答案 0 :(得分:3)

如果返回String,Razor会自动对html进行编码。如果返回IHtmlString,它将不会对Html进行编码。

寻呼机方法是否返回String而不是IHtmlString?

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

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

答案 1 :(得分:3)

它在示例项目而不是您的项目中工作的原因是因为在示例项目中他们在部分页面中使用@Html.Pager,然后使用@{Html.RenderPartial();}在主页面上调用{0}}渲染类似于Pager中呈现的字符串输出为html而不是编码的html。

如果您需要使用没有子页面的寻呼机,那么您需要将Html.Raw中的呼叫包裹起来,因为Html.Pager默认使用ToString返回string而非IHtmlString