三、关于脚本文件MicrosoftMvcAjax.debug.js
还记得前面的表单编码中当调用Ajax.Form时出现一个UpdateTargetID吗?它所指向的是按钮控件旁边的div元素(相应于其ID值)。其实,这个div元素内容的填入方式是通过脚本文件MicrosoftMvcAjax.debug.js控制实现的。
为了进一步弄清楚问题的实质,我们还是跟踪到脚本文件MicrosoftMvcAjax.debug.js的内容中来看一下相关的代码片断吧,如下所示:
//把结果插入进目标元素中
if (targetElement) { //如果存在目标元素
switch (insertionMode) {
case Sys.Mvc.InsertionMode.Replace:
targetElement.innerHTML = executor.get_responseData();
break;
case Sys.Mvc.InsertionMode.InsertBefore:
targetElement.innerHTML = executor.get_responseData() + targetElement.innerHTML;
break;
case Sys.Mvc.InsertionMode.InsertAfter:
targetElement.innerHTML = targetElement.innerHTML + executor.get_responseData();
break;
}
}
if (targetElement) { //如果存在目标元素
switch (insertionMode) {
case Sys.Mvc.InsertionMode.Replace:
targetElement.innerHTML = executor.get_responseData();
break;
case Sys.Mvc.InsertionMode.InsertBefore:
targetElement.innerHTML = executor.get_responseData() + targetElement.innerHTML;
break;
case Sys.Mvc.InsertionMode.InsertAfter:
targetElement.innerHTML = targetElement.innerHTML + executor.get_responseData();
break;
}
}
四、把对Ajax脚本的引用添加到母版视图
注意,在目前(最新版本的Preview 4)的ASP.NET MVC编程中,我们必须手工添加相应的Ajax脚本库。在本例中,我把它们添加到母版视图Site.Master下,如下所示:
<script src="/Content/MicrosoftAjax.debug.js" type="text/javascript"></script>
<script src="/Content/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>
<script src="/Content/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>
另外还请注意,上面的脚本文件MicrosoftMvcAjax.js是框架最新提供的,它(以及另外几个脚本文件)位于你新建的MVC应用程序的Content文件夹下。