我宁愿使用第二种方法。
在一开始,我也认为.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