什麼是更好的方式獲取和張貼不同的模型只有一個視圖。MVC one view and different models
例如,我有一組控件,每個控件都有自己的模型。我想根據條件在一個視圖中加載它們。然後在帖子上,我想從這個視圖中檢索值。
有什麼更好的做法呢?
什麼是更好的方式獲取和張貼不同的模型只有一個視圖。MVC one view and different models
例如,我有一組控件,每個控件都有自己的模型。我想根據條件在一個視圖中加載它們。然後在帖子上,我想從這個視圖中檢索值。
有什麼更好的做法呢?
創建一個複合視圖模型,將每個單獨的模型公開爲屬性。
嘿,如果我正確地理解你的問題,這裏是我會做什麼:
創建你需要爲了能夠從「主」的觀點稱他們爲不同型號的局部視圖。 然後,通過模型的ViewData的,每當你需要渲染的部分做到以下幾點:
<%Html.RenderPartial("PartialViewName", ViewData["Model"]);%>
我創建了一個仿真模型是這樣的:
public class CustomerViewData {
public Customer customer { get; set; }
public Ticket ticket { get; set; }
public Decimal price { get; set; }
}
在你的控制器,你叫CustomerViewData和用你需要的數據填充你的視圖:
CustomerViewData.Customer = _customerRepository.GetCustomerById(1);
然後你將CustomerViewData傳遞給你的視圖。在你看來,你添加
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyNamespace.Models.CustomerViewData>" %>
現在,您可以撥打<%= Model.Customer.Name %>
顯示客戶的名字(因爲你的客戶對象有一個名稱屬性)。
(以上只是一個例子,實際的內容當然可能更合理)。
非常有趣。任何例子? – Juk 2010-07-25 08:28:47
是的看到我的例子(我稱它爲人造,但複合可能是一個更好的名字) – jao 2010-07-25 08:31:44
@Jao我明白了。 只有一個模型,其中屬性表示我想要在該視圖上顯示的所有部分模型。 謝謝! – Juk 2010-07-25 08:39:40