Entity framework MVC默认编辑视图增加“我的模型”的id属性?Can';我不明白为什么。

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 我不知道如何在发送模型

我试图学习web开发,我敢打赌这是一个简单的问题,我忽略了一些显而易见的东西

在默认的crud编辑控制器(使用MVC框架生成)中,我使用EntityFramework的dbContext从localDB实例检索模型。这将发送到视图。在调试器中,在控制器调用
返回视图(模型)
之前,我可以看到Id设置为2

当[post]编辑控制器被触发时,我看到identity属性为3。我想弄清楚为什么我改变了视图来显示我的Id属性,我一呈现页面就看到它是3。上一次我看到它的财产是2,现在是3

我不知道如何在发送模型和渲染视图之间连接任何逻辑


有谁能帮我学习如何调试它,这样我就可以弄清楚当我将模型传递到视图中时,为什么我的Id属性会增加?

我不知道EntityFramework是如何工作的,但我使用过CakePHP。我的建议如下:

  • 通常PHP框架都有调试模式,可以在配置文件中设置(打开或关闭)。通常,执行的操作堆栈也会在调试模式下显示,或者有一种简单的方法来实现。例如,在CakePHP exist函数debug($yourVariable)中也有一个例子;试图寻找相似的事物

  • 它不像进行编辑,而是将新行插入到数据库中。请检查您的数据库以了解这一点。我建议调试为编辑操作传递的列的id,并首先检查数据库中是否有相同的id


  • 希望能有所帮助。

    我想出来了。在这里为遇到我问题的其他人发帖

    我尝试在不使用任何htmlhelper方法的情况下转储整个模型。(在我的例子中,我正在使用:
    Html.HiddenFor
    helper)当我这样做的时候,我看到模型中的值是我所期望的。所以我开始调查为什么helper方法可能会被破坏。谷歌在这里为我工作:)

    事实证明,当helper方法运行时,它们首先检查
    ModelState
    字典中所需的值。在我的例子中,我在寻找模型对象和ModelState字典中的一个值,因为这个名称非常常见:Id


    要在调用
    返回视图(模型)
    之前解决此问题,请调用
    ModelState.Clear()
    ,以确保字典中没有冲突的值。这样做会使我的页面正确呈现。

    好吧,你可以查看发送到浏览器的消息,但这显然是说
    3
    ,除非有一些鬼鬼祟祟的javascript正在运行。感谢您提供有关调试模式的提示。我已经开始研究Asp.net和MVC的类似选项