Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 带有提交按钮的ASP.Net Mvc Ajax.BeginForm将触发两次_Asp.net Mvc 4_Asp.net Ajax - Fatal编程技术网

Asp.net mvc 4 带有提交按钮的ASP.Net Mvc Ajax.BeginForm将触发两次

Asp.net mvc 4 带有提交按钮的ASP.Net Mvc Ajax.BeginForm将触发两次,asp.net-mvc-4,asp.net-ajax,Asp.net Mvc 4,Asp.net Ajax,当使用Ajax.BeginForm(“Index”)时,新的AjaxOptions(…)带有提交按钮。它调用action方法两次。原因可能是什么?当我用Html.BeginForm替换Ajax.BeginForm时,它可以正常工作 @using (Ajax.BeginForm(new AjaxOptions { OnSuccess = "onTemplateSaveSuccess(data);", OnComplete = "hideProgress();" })) {

当使用Ajax.BeginForm(“Index”)时,新的AjaxOptions(…)带有提交按钮。它调用action方法两次。原因可能是什么?当我用
Html.BeginForm
替换
Ajax.BeginForm
时,它可以正常工作

@using (Ajax.BeginForm(new AjaxOptions { OnSuccess = "onTemplateSaveSuccess(data);", OnComplete = "hideProgress();" }))
    {
        @Html.AntiForgeryToken()
        <input type="hidden" name="templatePageNumber" id="templatePageNumber" />
        <input type="hidden" name="templatePageSize" id="templatePageSize" />
        @Html.HiddenFor(model => model.TemplateCode)

        <div class="event-subheading">Templates </div>
        <div id="TemplateInputDiv">

            <fieldset>
                <ul>
                    <li>
                        <label>Template Name </label>
                        @Html.TextBoxFor(model => model.TemplateName)
                        @Html.ValidationMessageFor(model => model.TemplateName)
                    </li>
                    <li>
                        <label>Type</label>
                        <input type="radio" name="TemplateType" class="radio-cover" value="1" checked="checked" /><span class="radio-txt">Email&nbsp;&nbsp;&nbsp;</span> <input type="radio" name="TemplateType" class="radio-cover" value="2" /> <span class="radio-txt">SMS&nbsp;&nbsp;&nbsp;</span> <input type="radio" name="TemplateType" class="radio-cover" value="3" /><span class="radio-txt">Badge</span>
                        <div class="clearfix"></div>
                    </li>

                    <li>
                        <label>Content </label>
                        @Html.TextAreaFor(model => model.TemplateContent, 10, 40, null)
                        @Html.ValidationMessageFor(model => model.TemplateContent)
                    </li>
                    <li>
                        <label></label><a href="myModal" data-toggle="modal" data-target="#myModal"><label class="hint--success" style="color:#23527c;font-weight:bold;" data-hint="Use hand button in the Dynamic Data window to insert the dynamic data tag to the current position of the editor."><b>Dynamic Data</b></label></a>
                        <span></span>
                    </li>
                    <li>
                        <label></label>
                        <input type="submit" value="Save" id="submitTemplate" name="submitTemplate" class="sub_mit" />
                        <input type="reset" value="Cancel" class="sub_mit" id="cancel" />
                    </li>
                </ul>
            </fieldset>

            <div class="clearfix"></div>
        </div>

    }
@使用(Ajax.BeginForm(新的AjaxOptions{OnSuccess=“onTemplateSaveSuccess(data);”,OnComplete=“hideProgress();”)
{
@Html.AntiForgeryToken()
@Html.HiddenFor(model=>model.TemplateCode)
模板
  • 模板名称 @Html.TextBoxFor(model=>model.TemplateName) @Html.ValidationMessageFor(model=>model.TemplateName)
  • 类型 电子邮件短信徽章
  • 内容 @Html.TextAreaFor(model=>model.TemplateContent,10,40,null) @Html.ValidationMessageFor(model=>model.TemplateContent)
}
检查onTemplateSaveSuccess(数据)method,可能它再次启动了ajax reuqest

  • 转到chrome(F12)中的netwrok选项卡,检查客户所做的ruqest。它会准确地告诉你为什么会提出第二个请求以及是谁提出的

  • 请共享onTemplateSaveSuccess方法的代码。请尝试从此方法返回false,并在此方法末尾设置e.preventDefault()。如果这不起作用,那么也试着写e.stopPropagation()

    您向我们展示的任何东西都不会导致这种情况。什么是
    onTemplateSaveSuccess(data)
    ?可能是jquery不引人注目的ajax包含了两次。导致此问题的原因检查onTemplateSaveSuccess(数据);方法,可能它再次启动了ajax reuqest。Ehsan,把它作为一个正式的回答,这样我就可以在上面打勾了。