Entity framework MVC默认编辑视图增加“我的模型”的id属性?Can';我不明白为什么。
我试图学习web开发,我敢打赌这是一个简单的问题,我忽略了一些显而易见的东西 在默认的crud编辑控制器(使用MVC框架生成)中,我使用EntityFramework的dbContext从localDB实例检索模型。这将发送到视图。在调试器中,在控制器调用Entity framework MVC默认编辑视图增加“我的模型”的id属性?Can';我不明白为什么。,entity-framework,debugging,model-view-controller,Entity Framework,Debugging,Model View Controller,我试图学习web开发,我敢打赌这是一个简单的问题,我忽略了一些显而易见的东西 在默认的crud编辑控制器(使用MVC框架生成)中,我使用EntityFramework的dbContext从localDB实例检索模型。这将发送到视图。在调试器中,在控制器调用返回视图(模型)之前,我可以看到Id设置为2 当[post]编辑控制器被触发时,我看到identity属性为3。我想弄清楚为什么我改变了视图来显示我的Id属性,我一呈现页面就看到它是3。上一次我看到它的财产是2,现在是3 我不知道如何在发送模型
返回视图(模型)
之前,我可以看到Id设置为2
当[post]编辑控制器被触发时,我看到identity属性为3。我想弄清楚为什么我改变了视图来显示我的Id属性,我一呈现页面就看到它是3。上一次我看到它的财产是2,现在是3
我不知道如何在发送模型和渲染视图之间连接任何逻辑
有谁能帮我学习如何调试它,这样我就可以弄清楚当我将模型传递到视图中时,为什么我的Id属性会增加?我不知道EntityFramework是如何工作的,但我使用过CakePHP。我的建议如下:
希望能有所帮助。我想出来了。在这里为遇到我问题的其他人发帖 我尝试在不使用任何htmlhelper方法的情况下转储整个模型。(在我的例子中,我正在使用:
Html.HiddenFor
helper)当我这样做的时候,我看到模型中的值是我所期望的。所以我开始调查为什么helper方法可能会被破坏。谷歌在这里为我工作:)
事实证明,当helper方法运行时,它们首先检查ModelState
字典中所需的值。在我的例子中,我在寻找模型对象和ModelState字典中的一个值,因为这个名称非常常见:Id
要在调用
返回视图(模型)
之前解决此问题,请调用ModelState.Clear()
,以确保字典中没有冲突的值。这样做会使我的页面正确呈现。好吧,你可以查看发送到浏览器的消息,但这显然是说3
,除非有一些鬼鬼祟祟的javascript正在运行。感谢您提供有关调试模式的提示。我已经开始研究Asp.net和MVC的类似选项