我寧願使用第二種方法。
在一開始,我也認爲.ajax
調用可能會混淆視圖。 (沒有人喜歡在視圖中添加很長的<script>
部分。)但是在問我關於Stackoverflow的問題後,我很高興在這裏找到一些專家爲這些javascript使用一些「代碼隱藏」。
的做法是:
創建一個單獨的JS
文件夾來存儲所有的「代碼隱藏」 js文件。 (默認Scripts文件夾只包含第三方包,比如knockout.js
,jquery.js
和等)
對於每個視圖,生成.js
文件,像home.index.js
,form.add.js
等只要按照統一的規則。將會創建很多js
文件。最棒的是在MVC4中,我們可以將這個文件夾下的所有.js
文件合併在一起,並生成一個縮小的,組合的單個文件,並在_Layout視圖中只加載一次。
做到這一點的方法是:
在_layout視圖,<head>
部分:
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/JavaScripts/js")" type="text/javascript"></script>
在Global.asax
,Application_Start
,註冊捆綁:
var bundle = new Bundle("~/JavaScripts/js", new JsMinify());
bundle.AddDirectory("~/JavaScripts", "*.js", true);
BundleTable.Bundles.Add(bundle);
BundleTable.Bundles.EnableDefaultBundles();
//BundleTable.Bundles.RegisterTemplateBundles();
那麼你是好走。視圖仍然乾淨。所有的.js文件都是有組織的。並且不需要在每個單獨的視圖上導入不同的.js文件。
Leaning JS不是問題。由於它可能是唯一的客戶端編程語言,現在我們有必要學習新的東西。我覺得現在更容易,因爲我們有jQuery
。現在是升級我們的知識的時候了。我對使用這些新工具可以完成的事情感到高興和興奮。
這是非常有意義的,...是的...知道了。但展望未來,WebAPIController如何爲移動設備,rss提供什麼 - 控制器如何影響傳統MVC View控制器的存在(或不存在)? MVC Views應該被視爲WebAPI提供的另一種可能的格式嗎?很多 – justSteve 2012-03-22 18:10:02