我有两个视图:
1)注册 - 用于创建用户帐户的主要视图
2)类别 - 部分视图,用于在注册视图组合字段中没有该类别时动态添加类别。
当用户点击“添加类别”时,类别视图显示为 jQuery 对话框。此视图显示构成新类别所需的字段,如名称和描述。因此,它具有单独的模型。
在获取页面上,一切正常,但是在提交后,如果存在一些验证错误,则页面需要重新加载以提供用户提供的值进行更正,而不是抛出以下错误:
异常详细信息:System.InvalidOperationException:字典中传递的模型项的类型为'Delight.Models.User',但此字典需要类型为'Delight.Models.Category'的模型项。
我认为使用以下语句可能会导致此问题(因为它没有指定用于部分视图的模型对象):
然而,使用以下重载也未能解决问题:
当用户点击“添加类别”时,类别视图显示为 jQuery 对话框。此视图显示构成新类别所需的字段,如名称和描述。因此,它具有单独的模型。
在获取页面上,一切正常,但是在提交后,如果存在一些验证错误,则页面需要重新加载以提供用户提供的值进行更正,而不是抛出以下错误:
异常详细信息:System.InvalidOperationException:字典中传递的模型项的类型为'Delight.Models.User',但此字典需要类型为'Delight.Models.Category'的模型项。
我认为使用以下语句可能会导致此问题(因为它没有指定用于部分视图的模型对象):
@Html.Partial("CreateCat")
然而,使用以下重载也未能解决问题:
@Html.Partial("CreateCat", null, null)
在第二个参数(具有null值)之上,表示模型对象。
然而,出乎意料地,以下解决了我的问题:
@Html.Partial("CreateCat", new Category(), null)
为什么在这种情况下空对象可用,但null不可用?
是否有其他更好的方法来呈现具有不同模型类型的强类型部分视图。