2012-01-09 49 views
2

我一直在想我是否應該使用JavaScriptResult? 我已閱讀過幾篇關於此事的文章,並且有人反駁意見。在我的代碼中使用JavaScriptResult

我可以看到好處:

  1. 代碼在控制器呈現,因此我可以與數據源和更困難的計算和邏輯交互。
  2. 但是使用呈現的jasonresult基於頁面呈現的JS似乎是更好的選擇。

不知道有關的編程模式:

怎樣的JavaScript渲染控制器模型視圖控制器

回答

1

MVC適合是這是所有關於相關分離的設計模式。我經常聽說JavaScriptResult是可以避免的,因爲它打破了原理。在我看來,你應該記住,MVC爲你提供了強大的工具,但這取決於你,你將如何處理它們。 JavaScript XHR/Ajax可以提供的不僅僅是GUI渲染,而是應該考慮使用。事實上,即使是最簡單的方法,也可能會錯過,但這並不意味着我們不應該使用它們:)

當然,在您的頁面上使用JavaScript並使用JSON提供它是完美無缺的,在大多數情況下,這足夠了。有時候,您需要選擇您希望100%符合MVC模式或DRY原則/其他良好做法。我認爲最好在特定情況下做你認爲有意義的事情。

讓我們來看看WebGrid幫手的GetContainerUpdateScript方法http://msdn.microsoft.com/en-us/library/system.web.helpers.webgrid.getcontainerupdatescript(v=vs.99).aspx它提供了jQuery的oneliner來更新您的webgrid數據。在這種情況下,它全部在View中,但類似的代碼可能是控制器的一部分 - 比如說一個基於某個唯一標識符(例如sessionID)製作一堆POST請求的腳本。

在我看來,在視圖和控制器之間加入一條細細的紅線(有時會稍微交叉)以避免其他問題,使代碼更乾淨,更易於重用和維護。

相關問題