C# 两张表格,一页。查看模型、模型还是其他?

C# 两张表格,一页。查看模型、模型还是其他?,c#,model-view-controller,model,viewmodel,C#,Model View Controller,Model,Viewmodel,我有一个处理上传图像的组件,当它以自己的形式是绑定到视图模型的视图,映射到控制器中的主模型时,它可以正常工作。同样,我有一个绑定到简单视图模型的标准视图,然后映射到主模型并保存 因此,这两个单独的页面都可以很好地工作,然而,我渴望在同一个页面中向用户展示它们——我完全被卡住了 我有两个不同的视图模型需要这一页,只是不知道如何前进,以及如何组合它们 我尝试创建一个新的Viewmodel,它基本上包含了另外两个视图模型,但是当其中一个表单提交时,ModelState.IsValid始终返回false

我有一个处理上传图像的组件,当它以自己的形式是绑定到视图模型的视图,映射到控制器中的主模型时,它可以正常工作。同样,我有一个绑定到简单视图模型的标准视图,然后映射到主模型并保存

因此,这两个单独的页面都可以很好地工作,然而,我渴望在同一个页面中向用户展示它们——我完全被卡住了

我有两个不同的视图模型需要这一页,只是不知道如何前进,以及如何组合它们

我尝试创建一个新的Viewmodel,它基本上包含了另外两个视图模型,但是当其中一个表单提交时,
ModelState.IsValid始终返回false,因为其他字段中的某些必需数据不存在

通过去掉
ModelState.IsValid
,应用程序运行良好,但作为一名MVC新手,我对此感到有点不安,只是想知道是否有人可以帮助我


(如果这确实需要一个新的ViewModel,每个表单都有一个ViewModel,如果你能告诉我一个好的命名约定,那就有好处了,因为我尝试过的几个命名约定看起来非常混乱!)

你可以尝试使用局部视图

<div>
    @Html.Partial("FormA")
</div>
<div>
    @Html.Partial("FormB")
</div>

@Html.部分(“形式”)
@Html.Partial(“FormB”)
然后在FormA.cshtml中,您将有:

@model Namespace.FormAViewModel
<form> </form>
@model Namespace.FormAViewModel

然后类似于FormB

我不得不重做/重新构建一大块代码,但我可以看到这是一个巨大的改进,我应该一直使用它。。。命名约定让我抓狂,因为现在有额外的模型/复杂性,但是,这只是语义-主要的事情是实际工作。非常感谢。我喜欢使用partials的一点是,当你想更改某些内容时,你只需找到部分视图并在那里进行更改,而如果它都在同一页上,你就必须滚动查找它。