:
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>JavaScript参考文件:
<script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js") type="text/javascript"></script>CSHTML页面:
@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "result", LoadingElementId = "progress", InsertionMode = InsertionMode.Replace }))
{
<div class="form">
<div class="emailBox">
<input id="email" name="email">
<input type="submit" value="Join Us">
</div>
<div id="result">
</div>
<div id="progress" style="display:none;">
<img src= "@Url.Content("~/Content/images/Ajax-loader-bar.gif") ">
</div>
</div>
}Controller.cs:
[HttpPost]
public string Index(SignUpModel model)
{
return "Hello";
}当我点击SUBMIT按钮的原因是什么,整个页面会被一个白色页面替换,上面写着"hello“。我的印象是,Ajax.BeginForm将取代DIV结果的内容。
我做错什么了??
另外,LoadingElementID
当AJAX调用返回其值时,它会自动隐藏吗?
=========================
答案
Firebug显示没有找到一个引用的JS文件。
在我修正了这个问题之后,..it就像预期的那样工作了。
谢谢各位
发布于 2012-06-04 05:43:33
确保在使用jquery的页面上添加了Ajax.BeginForm、Jquery.unobtrusive-ajax脚本文件。此外,请检查firebug (或任何调试器工具)中是否存在可能导致ajax失败并触发整个页面回发的javascript错误。是的,加载元素应该在ajax post的结果返回时自动隐藏。
还请确保web.config包含以下设置
<appSettings>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>发布于 2012-06-04 05:43:30
1)确保在标题中包含post
@using (Ajax.BeginForm(new AjaxOptions
{ UpdateTargetId = "result",
LoadingElementId = "progress",
InsertionMode = InsertionMode.Replace,
HttpMethod = "POST" }))2)确保页面中包含所有引用的JavaScript文件
不要返回hello,而是返回View()
https://stackoverflow.com/questions/10876653
复制相似问题