从视图中获取实体的名称 - 最好是复数名称

时间:2013-02-27 21:13:57

标签: asp.net-mvc-4 entity-framework-5 pluralize

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

@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();,因为这就是我传递的内容。

嗯......有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

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