0

我的视图直接将实体作为模型:

@model MyProject.Models.MyEntity

有没有一种简单的方法可以在视图中获取实体的复数名称?在上面的例子中,我想要MyEntities.

我知道我可以在助手中或在控制器中执行此操作并将其传递到 ViewBag 或 ViewModel 中 - 但是是否有直接的方法可以在视图中获取它?

非复数名称可以,因为我在String对象上创建了一个扩展方法,该方法使单词复数:

using System.Data.Entity.Design.PluralizationServices;

namespace System
{
    public static class StringExtensionMethods
    {
        public static string Pluralise(this string word, CultureInfo culture)
        {
            var service = PluralizationService.CreateService(culture);

            if (service.IsSingular(word))
            {
                return service.Pluralize(word);
            }

            return word;
    }
}

PS。如果有人想使用上述内容,则System.Data.Entity.Design需要参考。

编辑:

我刚刚意识到我可以做到Model.GetType().Name.Pluralise();,因为这就是我所传递的。

嗯……有更好的方法吗?

4

1 回答 1

0

这几乎是最好的方法,但是大多数人会认为你应该在控制器中做它,并通过 ViewModel 将复数名称传递给视图

于 2013-02-27T21:52:14.317 回答