Использование плагина формы Jquery asp.net mvc 3 - PullRequest
1 голос
/ 18 июня 2011

У меня есть этот код в представлении:

<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 Ответ

4 голосов
/ 18 июня 2011

ajaxSubmit() отправляет форму немедленно.Вам нужно ajaxForm() для того, чтобы AJAXify существующей формы:

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

после того, как форма была AJAXified, вы можете позже принудительно отправить ее с помощью $('#myForm').ajaxSubmit(); или просто оставить ее пользователю, нажав кнопку отправки..

Кроме того, как вы определили форму, похоже, нет идентификатора.Так что ваш $('#myForm') селектор вряд ли что-нибудь вернет.Возможно, вы захотите назначить идентификатор для вашей формы:

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

или если вы не хотите назначать уникальный идентификатор для формы, вы можете AJAXify для всех форм в текущем представлении, адаптируя селектор jQuery:

$(document).ready(function () {
    $('form').ajaxForm();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...