Web配置:
<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";
}
当我点击“提交”按钮时,是什么原因,整个页面被替换为“hello”的白页。我的印象是Ajax.BeginForm会替换 DIV RESULT 的内容。
我做错了什么?
另外,LoadingElementID
当AJAX调用返回其值时,它会自动隐藏吗?
=========================
的 ANSWER
Firebug显示其中一个Referenced JS文件没有找到。
我修好了..所有都按预期工作。
谢谢你们
答案 0 :(得分:3)
确保您使用jquery
页面上添加了Jquery.unobtrusive-ajax
,Ajax.BeginForm
个脚本文件。此外,检查firebug(或任何调试工具)是否存在可能导致ajax失败并触发整个页面的完整回发的javascript错误。是的,当ajax帖子的结果回来时,loadingelement应该自动隐藏
还要确保您的web.config包含以下设置
<appSettings>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
答案 1 :(得分:1)
1)确保在标题中包含帖子
@using (Ajax.BeginForm(new AjaxOptions
{ UpdateTargetId = "result",
LoadingElementId = "progress",
InsertionMode = InsertionMode.Replace,
HttpMethod = "POST" }))
2)确保在页面上包含所有引用的JavaScript文件
而不是返回hello尝试返回View()