我正在使用MS MVC 3构建一个Web应用程序,并遇到了一个问题,可能是由于我对模型绑定的理解有漏洞。
首先,我有一个相当标准的模型(为了简洁起见省略了无关的内容,更改了名称以保护无辜对象的隐私):
为了显示和编辑这些内容,我有一个针对Order类强类型的视图,其中包含一个强类型的Partial View,该Partial View针对Product类。 Partial View的顶部如下所示:
我将局部视图插入到主视图中,就像这样:
...当视图在浏览器中呈现时,“Id”隐藏输入包含订单的ID,而不是我期望和需要的产品的ID :(
我错过了什么?是否可以在不更改模型和视图结构的情况下修复它?
首先,我有一个相当标准的模型(为了简洁起见省略了无关的内容,更改了名称以保护无辜对象的隐私):
public class ModelBase
{
public int Id { get; set; }
}
public class Order : ModelBase
{
public List<Product> Products { get; set; }
}
public class Product : ModelBase
{
public int OrderId { get; set;}
}
为了显示和编辑这些内容,我有一个针对Order类强类型的视图,其中包含一个强类型的Partial View,该Partial View针对Product类。 Partial View的顶部如下所示:
@model Product
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.Id)
@Html.HiddenFor(model => model.OrderId)
//loads of actual editable properties
我将局部视图插入到主视图中,就像这样:
@Html.Partial("EditorTemplates/Product", Model.Products.First())
...当视图在浏览器中呈现时,“Id”隐藏输入包含订单的ID,而不是我期望和需要的产品的ID :(
我错过了什么?是否可以在不更改模型和视图结构的情况下修复它?