如何获取当前视图的模型名称?

How can you get the current View's Model name?

我预计这是 asked/answered 一百次,但我在整个 Internet 上能找到的唯一答案是:

var currentModel = Model.GetType().Name;

这个几乎有效但是例如如果模型被定义为

@model Myproject.Model.User_info

然后 currentModel 的值最终是这样的:

User_info_23L7HGAFWLIUHI7GLIUBGFWAKHGI73I37GArwq

我真的必须去掉以倒数第二个下划线开头的所有内容吗?或者有更好的方法吗?

根据 Jasen 对上述问题的评论,我最终的答案是:

var currentModel = System.Data.Entity.Core.Objects.ObjectContext.GetObjectType(Model.GetType()).Name;

...这会可靠地生成开发人员定义的模型和视图模型的正确名称。