2012-01-16 45 views
5

我已經使用asp.net web表單很多,但這是我第一個ASP.Net MVC應用程序。我想要做的是使用子視圖來渲染一些控件,這些控件是相對獨立於頁面顯示和操作的。例如,我有一個日曆「小工具」,它使用服務器端邏輯在每次點擊日期時顯示事件列表,而完全獨立於頁面其餘部分的處理。asp.net mvc子動作

在Web窗體中,我可以創建一個ASCX(Web用戶控件)。當在控件中點擊一個日期時,整個頁面被回傳,但我可以將點擊處理放在日曆控件中;頁面的其餘部分會自動進行往返處理,而無需使用任何特定的邏輯來處理日曆控件的回發。

如果我將「日期點擊」操作路由到日曆控制器,它不知道它所嵌入的頁面,因此它只能繪製日曆,而不是頁面的其餘部分。我能想到的唯一解決方法(除了ajax)是讓擁有頁面的控制器處理所有日曆點擊操作,並在呈現整個頁面的視圖之前將它們傳遞到日曆控制器上

希望我錯過了一些東西明顯。

回答

3
+1

是的,這個。另外,如果您需要像母版頁一樣重新使用佈局,請嘗試構建模板,這本質上是一回事。 – 2012-01-16 21:28:50

+0

感謝您的回覆,我已經查看了網址並閱讀了一些內容,但仍然有些東西缺失。我瞭解如何使用部分視圖和子操作來初始化呈現日曆控件的視圖,但是如何在日曆中的某個日期點擊時發生什麼?這個點擊動作應該可能會發送到日曆控制器(這樣它可以檢索該日期的項目),但日曆控制器不能渲染頁面的其餘部分嗎?我所見過的所有關於子視圖的例子只生成靜態內容或導航鏈接,而不是「回發」控件 – Andy 2012-01-16 21:55:27

+0

您可能需要使用ajax來更新頁面的日曆部分 – 2012-01-16 23:03:02

-8

你可以使用iframe顯示主網頁內的日曆。您的主頁可以有網址http://example.com/main,iframe可以有網址http://example.com/calendar/today。通過在鏈接上設置target屬性,iframe中的鏈接可以重新加載iframe,或者可以重新加載主頁面。同樣,主頁上的鏈接可以定位iframe。

由於主頁面和iframe都來自您的服務器,因此不會有任何跨域問題,因此您可以執行任何所需的腳本。