none
Submit form из js в [HttpPost] контроллер текущей формы RRS feed

  • Общие обсуждения

  • Добрый день, пытаюсь отправить данные по форме через js, подскажите плиз что я делаю не правильно

    Форма в представлении
    @using (Html.BeginForm("Registration", "Home", FormMethod.Post, new { Area = "_Public", id = "my-form", @ng_Controller = "HomeController"}))
    {
    ...........
    <input type="button" value="submit" id="subReg" ng-click="regValidJs()"/>
    }

    Функция. Т.е форма должна сработать аналогично как мы нажимаем обычно на кнопку submit
     $scope.regValidJs = function () {
                setTimeout(function () {
                    alert("2 сек");
                    $.post('@Url.Action("Registration", "Home", FormMethod.Post, new { Area = "_Public" })', $("#my-form").serialize(), function (result) {     
                    }); 
                }, 2000);
            };
    alert() срабатывает но контроллер с  [HttpPost]  нет
    пробовал так :
    $("#my-form").submit({ url: '@Url.Action("Registration", "Home", new { Area = "_Public" })', type: 'post' });
    $("#my-form").ajaxSubmit({ url: '@Url.Action("Registration", "Home", new { Area = "_Public" })', type: 'post' });
    $("#my-form").ajaxForm({ url: '@Url.Action("Registration", "Home", new { Area = "_Public" })', type: 'post' });

    вот так $("#my-form").submit(); срабатывает  пустая страница по адресу /_Public/Home/Registration, рефреш и опять моя форма
    HomeController:
    public ActionResult Registration()
            {
                return View();
            }
    
      [HttpPost]
            [AllowAnonymous]
            [ValidateAntiForgeryToken]
            public ActionResult Registration(User u, string CaptchaText)
            {




       
    26 февраля 2015 г. 12:58

Все ответы

  • Я бы предложил сделать так:

    второй метод назвать Registration_Post и добавить к нему атрибут [ActionName("Registration")]. Сейчас нет возможности проверить вживую, но должно сработать.

    26 февраля 2015 г. 14:14
  • Чего-то не фурычит, так же всё
        public ActionResult Registration()
            {
                return View();
            }
    
            [HttpPost]
            [AllowAnonymous]
            [ValidateAntiForgeryToken]
            [ActionName("Registration")]
            public ActionResult Registration_post(User u, string CaptchaText)
            {

    26 февраля 2015 г. 15:07
  • Честно говоря, несколько смущает строка:

    $.post('@Url.Action("Registration", "Home", FormMethod.Post, new { Area = "_Public" })'

    Можете приложить сюда страницу, которую видит пользователь вместе с .js, если он в отдельном файле, т.к. выражение в кавычках ' ', не скомпилируется, если оно будет размещено в .cshtml файле. А если оно расположено в отдельном .js, то это так строкой и останется и тогда должна быть ошибка при исполнении $.post.

    Можно попытаться вместо '@Url.Action(....)' написать: '/Home/Registration?area=_Public'

    26 февраля 2015 г. 16:36
  • Не работает, мне бы без AJAX, только с помощью .submit("[HttpPost] Контроллер")
    27 февраля 2015 г. 7:13