【问题标题】:ASP.Net MVC 5 Pager number change languageASP.Net MVC 5 寻呼机号码更改语言
【发布时间】:2015-03-17 08:54:07
【问题描述】:

我一直在使用 ASP.Net MVC 5 来构建我的 Web 应用程序,并且出于分页目的,我遵循了以下教程。

http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application

一切都按预期进行。但是我的项目要求 pager 中显示的页面列表是孟加拉语而不是英语,具体取决于文化信息。

例如我的页面中有以下内容

123

但我需要它是

所以数字被翻译了。

有没有办法使用我使用的 PagedList.MVC 组件来实现?

【问题讨论】:

  • 您不希望整个页面都在bengali 中吗?
  • @RohitGupta,是的,整个页面都是孟加拉语,但无法转换寻呼机文本,因此问题...

标签: c# asp.net-mvc pagination


【解决方案1】:

您可以使用PagedListRenderOptions 指定一个函数来格式化您的数字。示例改编自 GitHub 上的文档:

@Html.PagedListPager((IPagedList)ViewBag.OnePageOfProducts,
    page => Url.Action("Index", new { page = page }),
    new PagedListRenderOptions {
        FunctionToDisplayEachPageNumber =
            page => page.ToString()
    }
)

关键是这条指令:page => page.ToString(),默认实现只是简单地执行String.Format(LinkToIndividualPageFormat , page),但你可以用你自己的函数替换它(就像前面的例子一样)。

很遗憾,page.ToString(new CultureInfo("bn-IN")) 不会将 1 打印为 ,因此您必须手动完成。一个非常幼稚的例子(不要使用这个,它很糟糕而且效率低下)只是为了解释我的意思:

page => page.ToString()
    .Replace("1", "\u09e7") 
    .Replace("2", "\u09e8")
    .Replace("3", "\u09e9"); // And so on...

【讨论】:

  • 太棒了!!...正是我要找的东西。我可以处理转换和所有事情,但找不到这个选项。谢谢!
  • @Tau 欢迎您,我有机会向this post 添加更多详细信息!
猜你喜欢
  • 2017-05-23
  • 2011-06-13
  • 2012-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多