Asp.Net HtmlBeginForm()Jquery提交不起作用

时间:2015-07-08 09:53:39

标签: jquery asp.net-ajax html-form-post

我希望在提交表单后使用Ajax显示部分视图。我需要侦听提交事件,然后触发Ajax以显示部分视图。注意:我不需要使用JQuery或Ajax提交表单,我只需要捕获该事件并激活Ajax。

然而,JQuery函数$(" form")。submit()不起作用!

我在Chrome调试器中设置了一个断点,它甚至没有被触发。问题是什么?这是代码:

P.S。该表单由组合框组成,用户可以在其中选择应用程序名称和版本,然后使用Ajax将性能测试结果图表显示为部分视图。



@model PerformanceDashboard.Models.ApplicationDashboardViewModel

<h3>Per Application</h3>


<br />

@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { id = "form" }))
{ 
   // @Html.AntiForgeryToken()
                            
    <div class="selector-label">
            @Html.LabelFor(model => model.ApplicationNames)
    </div>

    <div class="selector-combobox">
        @Html.DropDownListFor(x => x.SelectedApplication, Model.ApplicationNames)
        @Html.ValidationMessageFor(x => x.SelectedApplication)   
     </div>

    <br />
    
    <div class="selector-label">
        @Html.LabelFor(model => model.TestingTypes)
    </div>

    <div class="selector-combobox">
        @Html.DropDownListFor(x => x.SelectedTestingType, Model.TestingTypes)
        @Html.ValidationMessageFor(x => x.SelectedTestingType)
    </div>

    <br />
    
    <div class="selector-label">
        @Html.Label("Range")
    </div>

    <div class="selector-combobox">
        @Html.DropDownListFor(x => x.SelectedFirstVersion, Model.FirstVersion)
        @Html.ValidationMessageFor(x => x.SelectedFirstVersion)
        &nbsp;
        @Html.DropDownListFor(x => x.SelectedSecondVersion, Model.SecondVersion)
        @Html.ValidationMessageFor(x => x.SelectedSecondVersion)
    </div>
    
    <br />
    
    <input type="submit" value="Generate" />
    
}

<div id="displayarea">

</div>


<script>

    $(function () {

        $("#form").submit(function (e) {

            e.preventDefault();
            alert("form submitted!");

            $.ajax({
                type: this.method, //'POST'
                url: this.action, //'/controller/index'
                dataType: 'html',
                success: function (result) {
                    $('#displayarea').html(result);
                }
            });
        })
    });

</script>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

OMG !! 问题是我没有在HTML中引用JQuery! 这条线解决了我的问题:

&#13;
&#13;
<script src="~/Scripts/jquery-1.10.2.js"></script>
&#13;
&#13;
&#13;

谢谢!