我正在做一个代码第一个ASP .NET MVC项目。
在我看来,我正在接纳该实体。
@model MyProject.Model.MyEntity
在视图中,我正在渲染局部视图,传入模型。
@Html.Partial("_Edit", Model)
在这个局部视图中,我将模型定义为对象。
@model object
当我显示模型的类型时,我会看到附加了GUID的内容。
@{
Type entityType = Model.GetType();
string singularName = entityType.Name;
}
@{ ViewBag.Title = "Edit an existing " + singularName; }
这就是我在屏幕上看到的内容:
编辑现有的MyEntity_CB3FF0C41867D7757E4AF90F10EE2F7ED5B407EFCB96592EC3FB0A06DCAB902B
任何人都知道为什么并且除了在下划线上执行SubString()
之外还有其他办法吗?
答案 0 :(得分:3)
此问题植根于实体框架而非MVC x。
我遇到了同样的问题并打印出我的模型的完全限定名称(“SupportContactSecurity”):
System.Data.Entity.DynamicProxies.SupportContactSecuri_4C68726A6CC129D0001F286F1E38612D8DEC28F26CA3D3884B53BCDF810D8E6A
DynamicProxies 是那里的关键字。实体框架(默认情况下)用这些代理替换您的实体,以便它可以在上下文级别进行更改跟踪(我认为)。如果要关闭此功能,请参阅this Stack Exchange question。