2011-04-05 28 views
3

我有一個尋呼機如下:如何用MVCContrib和Razor製作尋呼機?

@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,但是當我運行它,我得到了同樣的問題。

可能是什麼問題?你們能幫我嗎?

+0

照顧ToString指出具體問題? HTML看起來很好,所以我不確定問題是什麼。 – Tejs 2011-04-05 19:20:27

回答

3

如果您返回字符串,Razor會自動編碼html。如果你返回一個IHtmlString,它將不會對Html進行編碼。

頁面方法是否返回一個String而不是IHtmlString?

嘗試使用Html.Raw。這個方法會將一個String轉換爲一個IHtmlString。

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

我不得不做'@ Html.Raw(Html.Pager(Model).First(「First」)。Last(「Last」)。Next(「Next」)。Previous(「Previous」)。ToString()) '但其他方式對我有用! – 2011-11-01 20:56:50

3

它在示例項目,而不是你的項目,因爲在示例項目他們在部分頁面,然後將其稱爲主網頁上顯示這樣的在使用@{Html.RenderPartial();}使用@Html.Pager原因從Pager呈現的字符串輸出爲html而不是編碼的html。

如果您需要使用尋呼機沒有子頁面,那麼你就需要包裝的呼叫Html.Raw作爲Linkgoron建議爲Html.Pager默認使用它返回一個string,而不是IHtmlString

+1

您使用@ Html.Raw(Html.Pager(...)。ToString())的技術爲我工作。 +1。 – Hafthor 2011-08-23 18:39:30