首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC Ajax.BeginForm InsertionMode

MVC Ajax.BeginForm InsertionMode
EN

Stack Overflow用户
提问于 2012-06-04 05:28:56
回答 2查看 4.5K关注 0票数 2

代码语言:javascript
复制
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>

JavaScript参考文件:

代码语言: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页面:

代码语言:javascript
复制
@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:

代码语言:javascript
复制
    [HttpPost]
    public string Index(SignUpModel model)
    {
        return "Hello";
    }

当我点击SUBMIT按钮的原因是什么,整个页面会被一个白色页面替换,上面写着"hello“。我的印象是,Ajax.BeginForm将取代DIV结果的内容。

我做错什么了??

另外,LoadingElementID

当AJAX调用返回其值时,它会自动隐藏吗?

=========================

答案

Firebug显示没有找到一个引用的JS文件。

在我修正了这个问题之后,..it就像预期的那样工作了。

谢谢各位

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-04 05:43:33

确保在使用jquery的页面上添加了Ajax.BeginFormJquery.unobtrusive-ajax脚本文件。此外,请检查firebug (或任何调试器工具)中是否存在可能导致ajax失败并触发整个页面回发的javascript错误。是的,加载元素应该在ajax post的结果返回时自动隐藏。

还请确保web.config包含以下设置

代码语言:javascript
复制
<appSettings>
        <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
    </appSettings>
票数 3
EN

Stack Overflow用户

发布于 2012-06-04 05:43:30

1)确保在标题中包含post

代码语言:javascript
复制
   @using (Ajax.BeginForm(new AjaxOptions 
{ UpdateTargetId = "result", 
LoadingElementId = "progress", 
InsertionMode = InsertionMode.Replace,   
HttpMethod = "POST"  }))

2)确保页面中包含所有引用的JavaScript文件

不要返回hello,而是返回View()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10876653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档