2

我正在做一个代码优先的 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()任何人都知道为什么,除了在下划线上做 a 之外还有其他方法吗?

4

1 回答 1

3

这个问题根源于实体框架而不是 MVC x。

我遇到了同样的问题并打印出我的模型的完全限定名称(“SupportContactSecurity”):

System.Data.Entity.DynamicProxies.SupportContactSecuri_4C68726A6CC129D0001F286F1E38612D8DEC28F26CA3D3884B53BCDF810D8E6A 

DynamicProxies是那里的关键字。实体框架(默认情况下)用这些代理替换您的实体,因此它可以在上下文级别进行更改跟踪(我认为)。如果要关闭此功能,请参阅此 Stack Exchange 问题

于 2013-07-24T18:23:21.750 回答