首页 > 解决方案 > 如何提交表单,但我的文本框在 asp.net Razor 页面中保留它们的值

问题描述

我有一个 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>

标签: c#htmlasp.net-core

解决方案


这是一个 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 表单。然后,您需要重新填充这些字段(但是,如果将来(和/或何时)添加新字段,这将导致提交和重新填充方面的额外工作)。


推荐阅读