我正在用MS MVC 3構建一個web應用程序,並且遇到了一個問題,可能是由於我對模型綁定的理解有一個漏洞。ASP.Net MVC強類型部分視圖和繼承屬性
首先,我有一個相當標準模型(略去了無關的東西,名稱變更爲保護無辜對象的隱私):
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類包含強類型爲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,我期待和需要:(
我缺少什麼?它可以是固定不改變模型和視圖的結構?
看起來不錯,你怎麼知道Id是訂單? OrderId是否正確顯示? – Wil 2012-01-30 13:40:00
OrderId確實顯示正確,並且它與Id字段中顯示的值相同。我想我不確定它是來自Order的值,因爲該值也作爲請求url的一部分存在(/ Orders/Step2/10,其中10是Order Id)。它可能是覆蓋Id字段的這個值嗎? – Atrieos 2012-01-31 08:33:49
您可以通過數據庫確認orderid是否與此記錄的id相同? – Wil 2012-01-31 09:52:24