2013-05-20 148 views
0

我爲我的主模型定義了一個視圖,並在其中調用了詳細局部視圖。我的主模型包含一個列表。當頁面發回服務器時,如何從部分視圖中獲取數據? 這裏是我的代碼:從MVC局部視圖獲取數據

OrderModel:

public string ShipName { get; set; } 
public string ShipAddress { get; set; } 
public IList<OrderDetailModel> OrderDetailModels { get; set; } 

OrderDetailModel:

public int OrderID { get; set; } 
public int Quantity { get; set; } 
public int UnitPrice { get; set; } 

public OrderModel OrderModel { get; set; } 

訂單查看

 @model MvcFirstSample.Models.OrderModel 
    @{ 
     ViewBag.Title = "create"; 
    } 

    <h2>create</h2> 

    @using (Html.BeginForm()) 
    { 
     @Html.ValidationSummary(true) 


     //..... 

    @Html.Partial("OrderDetail") 
} 

和OrderDetailView這是我的局部視圖:

@model MvcFirstSample.Models.OrderDetailModel 
@{ 
    ViewBag.Title = "OrderDetail"; 
} 
Partial view OrderDetail 
<div class="editor-label"> 
    @Html.LabelFor(model => model.Quantity) 
</div> 
<div class="editor-field"> 
    @Html.EditorFor(model => model.Quantity) 
    @Html.ValidationMessageFor(model => model.Quantity) 
</div> 
<div class="editor-label"> 
    @Html.LabelFor(model => model.UnitPrice) 
</div> 
<div class="editor-field"> 
    @Html.EditorFor(model => model.UnitPrice) 
    @Html.ValidationMessageFor(model => model.UnitPrice) 
</div> 

回答

2

你能試試這個代碼嗎?

@model MvcFirstSample.Models.OrderModel 
    @{ 
     ViewBag.Title = "create"; 
    } 

    <h2>create</h2> 

    @using (Html.BeginForm()) 
    { 
     @Html.ValidationSummary(true) 


     //..... 

    @Html.Partial("OrderDetail", Model.OrderDetailModels) 
} 

和局部視圖會

@model List<MvcFirstSample.Models.OrderDetailModel> 
@{ 
    ViewBag.Title = "OrderDetail"; 
} 
@* we need to looping the list of Order details here *@ 

最後,請添加自定義模型粘合劑OrderModel型

我會很快

+0

你發送的數據是添加示例代碼好吧,但我想在OrderView的回帖中獲得OrderDetailView的數據。 –

+0

如您所見,由於OrderView具有包含OrderDetails的表單,因此如果您提交該表單,則所有數據(Order&OrderDetails)都將到達服務器。 – thangchung

+0

好的,但是當頁面發回服務器時,我的OrderDodeil屬性在我的OrderModel中是空的 –