Как отправить форму, но мои текстовые поля сохраняют свои значения на страницах Razor asp.net - PullRequest
0 голосов
/ 04 июня 2019

У меня есть html-форма, в которой я пишу в текстовом поле и отправляю, когда нажимаю кнопку, и сохраняет в db, но я хочу, чтобы страница не обновлялась и продолжала работать со значениями в текстовом поле

Я видел людей, говорящих о ajax, но я никогда не работал с ajax

    <div class="row" style="float:left; margin: 2px ">

        <div asp-validation-summary="ModelOnly" class="text-danger"></div>
        <div class="col-md-3">
            <div class="form-group">
                <label>Pressão Injeção:</label> 
                <input id="id3" type="text" name="Pressão_de_Injeção" /> <br />
            </div>
        </div>

Ответы [ 2 ]

2 голосов
/ 04 июня 2019

Вот краткий пример вызова AJAX, который будет отправлять данные POST в контроллер:

var menuId = $("ul.nav").first().attr("id");
var request = $.ajax({
  url: "Home/SaveForm",
  type: "POST",
  data: {id : menuId},
  dataType: "html"
});

request.done(function(msg) {
  console.log('success');
});

request.fail(function(jqXHR, textStatus) {
  alert( "Request failed: " + textStatus );
});

Обратите внимание, что вы также можете передавать объекты в контроллер, предоставляя их как переменную в объекте данных:

var menuId = $("ul.nav").first().attr("id");
var obj = {
  id: menuId,
  text: "Foo"
};
var request = $.ajax({
  url: "Home/SaveForm",
  type: "POST",
  data: {name: "Jim", object: Obj},
  dataType: "html"
});

(Код адаптирован из ответ apis17 .)

Введение в AJAX можно найти здесь: https://www.w3schools.com/js/js_ajax_intro.asp

Единственный другой способ выполнить то, что вам требуется (без использования AJAX), - это отправить форму и передать данные обратно в форму HTML после завершения.Затем вам нужно будет заново заполнить поля (однако это приведет к дополнительной работе как при отправке, так и при повторном заполнении, если (и / или когда) новые поля будут добавлены в будущем).

0 голосов
/ 04 июня 2019

Вам придется использовать подход ajax.

Но если вы не хотите этого делать, вы всегда можете отправить сообщение в контроллер и вернуть модель в представление. В нем будет текст, введенный вами в textbox.eg.

public IActionResult MyView()
        {
            return View();
        }

[HttpPost]
public IActionResult MyView(MyModel model)
            {
                return View(model);
            }

Надеюсь, это поможет в качестве альтернативы.

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