使用Jquery表单插件asp.net mvc 3

时间:2011-06-18 09:19:41

标签: jquery asp.net asp.net-mvc-3

我在视图中有这个代码:

<script src="../../Scripts/jquery.form.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-1.5.1.js" type="text/javascript"></script>

<script type="text/javascript">
$(document).ready(function () {
    $('#myForm').ajaxSubmit();
});

@using (Html.BeginForm("PostData","Home",FormMethod.Post)) {

 <input type="text" name="name" />
 <input type="submit" value="submit" />
}

然后在控制器中我有这个方法:

 [HttpPost]
    public void PostData(string name)
    {
        //do smoething with name
    }

问题是我在提交表单时会重定向url / home / PostData。

有人有任何建议吗?

1 个答案:

答案 0 :(得分:4)

ajaxSubmit()立即提交表单。您需要ajaxForm()才能AJAX化现有表单:

$(document).ready(function () {
    $('#myForm').ajaxForm();
});

一旦表单被AJAX化后,您可以稍后使用$('#myForm').ajaxSubmit();强制提交,或者只需将其留给用户按下提交按钮。

此外,您定义表单的方式似乎没有ID。所以你的$('#myForm')选择器不太可能返回任何东西。您可能希望为表单指定一个ID:

@using (Html.BeginForm("PostData", "Home", FormMethod.Post, new { id = "myForm" })) 
{
    <input type="text" name="name" />
    <input type="submit" value="submit" />
}

或者如果您不想为表单分配唯一ID,则可以通过调整jQuery选择器来AJAX化当前视图中的所有表单:

$(document).ready(function () {
    $('form').ajaxForm();
});