我是 MVC 的新手,我遇到了一些问题。我正在做一个项目,我有几个表 - 公司和用户。每个公司可以有多个用户。我创建了一个注册视图,它有效地将两者的字段合并到一个视图中。我还有一个用于编辑用户的单独视图,以及另一个用于在现有公司中创建用户的视图。使用部分视图对我来说很有意义,因此我只需要在一个地方更新 UI。但是,我遇到了一些问题。当我在创建/编辑中使用部分时,它工作正常,因为我只是将它用作
@Html.Partial("UserDetails",Model)
但是,当我在注册中使用它时,我尝试做
@Html.Partial("UserDetails",Model.AutoFirstUser)
AutoFirstUser 是我创建的一个属性,如果不存在用户,它会自动创建一个用户,否则它只会返回公司中的第一个用户。这似乎是将数据合并到单个视图中的最简单方法。现在考虑一下,我意识到我可以只使用 User 作为模型并将 User.Firm 用于其他字段,但这只会将问题转移到 FirmDetails Partial View 上。
无论如何,我发现的问题是,尽管用户的字段是可见的并且可以正确验证,但是当我将表单发回时,他们没有找到回到模型中的方法,大概是因为模型实际上位于不同的“命名空间”中" 因为部分视图期望主要模型是用户,而注册视图期望它是公司。