2009-07-09 69 views
0

假設我有一個帶有方法Execute()的AddProductToCartTask。將消息從應用程序層傳遞到視圖

現在,任務正在從控制器中調用。在Execute方法中, 是一個檢查,如果不符合 - 操作未執行。

假設返回的信息是:「您沒有足夠的獎金購買此產品 」。

我想過在域驗證失敗時啓動一個事件 - 但這意味着在控制器中我必須有各種需要在動作中檢查的類變量(以確定是否需要設置錯誤消息,或者我需要重定向..等)

而不是我可以在任務上有一個方法:GetErrorMessages()。如果空 返回JSON對象,如果不爲空返回消息。或者,該方法可能會返回一個枚舉,它會告訴我是否需要重定向或設置消息或返回對象....

我不確定採取哪條路。任何輸入將不勝感激。你如何吸引你的域名層的消息?

編輯:這主要是在AJAX上下文中。即使我不確定它的重要性,因爲它是從某處調用的操作。

+0

說明:您使用AJAX調用此方法? (JsonResult)這一點很重要,因爲它會影響你可以採取的方向。 – GalacticCowboy 2009-07-09 12:13:49

回答

0

我可能會誤解你的請求,但在我看來,你想要一箇中心消息功能,而不是特定於任務對象的東西。如果你把它放在你的任務中,那麼這個任務必須保持在範圍內並且「活着」直到AJAX請求。

我做了類似的事情,雖然直接從控制器。

我有一個名爲Messages的靜態類。它有AddMessage(),GetLastMessage()和GetAllMessages()方法。每次調用時,都會檢查用戶的會話變量,如果沒有發現任何內容,則創建並保存一個隊列<字符串>()對象。這些方法基本上只是Queue的一個接口。隊列很好,因爲它處理push/pop會自動刪除「查看」消息。

我的控制作用:

Messages.AddMessage("Product Saved"); 

你可能會做的事:

Messages.AddMessage(task...GetErrorMessages()); 

然後,從我的觀點,我有一個HTML幫手檢查多少錯誤消息有,如果任何,創建每個消息的<ul>作爲<li>。

您可以輕鬆擁有一個GetMessages()控制器,它將任何消息作爲JSON對象返回。

James

相關問題