Отправка формы Ajax в Net .Core - PullRequest
       2

Отправка формы Ajax в Net .Core

0 голосов
/ 03 сентября 2018

Я создал мастера с jQuery-Steps lib с простой формой. Нет кнопки Submit . Я отправляю форму на завершающем этапе через jQuery.

Я уже использую вызовы jQuery повсюду, и я включил все сценарии, и мне нужна была форма для загрузки изображений и прочего, с ней стало проще.

Ничего не происходит, действие контроллера не вызывается.

Я просто перенаправлен на стартовую страницу со всеми этими параметрами в строке запроса.

Как это:

https://localhost:44380/Dashboard?Name=Aaaa&Surename=Bbbb&City=Cccc

Панель инструментов сделана с Ajax и частичным представлением. И от персоны в меню меня перенаправляют на домашний вид в Dashboard со всеми этими параметрами.

Это форма:

<form asp-controller="PersonSettings" asp-action="SaveForm" data-ajax="true" data-ajax-method="POST" id="personForm" class="steps-validation wizard-notification">
    <!-- Step 1 -->
    <h6>Person</h6>
    <fieldset>
        <div class="row">
            <div class="col-md-12">
                <div class="form-group">
                    <label for="Name">
                        Person Name :
                        <span class="danger">*</span>
                    </label>
                    <input autocomplete="off" type="text" class="form-control required" id="Name" name="Name">
                </div>
            </div>
            <div class="col-md-12">
                <div class="form-group">
                    <label for="Surname">
                        Person Surname:
                        <span class="danger">*</span>
                    </label>
                    <input autocomplete="off" type="url" class="form-control required" id="Surname" name="Surname">
                </div>
            </div>
            <div class="col-md-12">
                <div class="form-group">
                    <label for="City">
                        Person City:
                        <span class="danger">*</span>
                    </label>
                    <input autocomplete="off" type="url" class="form-control required" id="City" name="City">
                </div>
            </div>
        </div>
    </fieldset>
</form>

Это модель:

public class PersonDto {
    public string Name { get; set; }
    public string Surname { get; set; }
    public string City { get; set; }
}

Вот действие в контроллере PersonSettings:

[Route("SaveForm")]
[HttpPost]
public IActionResult SaveForm(PersonDto Person) {
   //Do something with person model
   return Ok();
}

И на кнопке финиша у меня есть jQuery submit, вызываемый в этой форме:

 $('#personForm').submit();

EDIT:

Я пробовал с такими параметрами:

<form action="PersonSettings/SaveForm" method="post" id="personFrom" class="steps-validation wizard-notification">

И это работает .. это хорошо, но почему первый метод не работает? Потому что мне нужно это в Ajax и метод Finish.

Я не нашел способа опубликовать изображение с формой с помощью классического вызова Ajax. Потому что я не могу прочитать путь к изображению (он не доступен браузерам).

1 Ответ

0 голосов
/ 03 сентября 2018

Я думаю, что вы не установили Tag Helpers. Если он работает с атрибутом действия, он должен работать с атрибутом Tag Helpers. Потому что вы используете атрибут Asp-Net-Controller.

https://www.nuget.org/packages/Microsoft.AspNetCore.Mvc.TagHelpers

Пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...