json - 为什么使用Ajax时输入值为NULL?(ASP.NET CORE)

标签 json ajax asp.net-core

在 View(MVC) 中使用 Ajax 时,我无法访问输入值,但在不使用 Ajax 时,我可以访问输入值。使用Ajax时实际上值是空的

当我使用 Ajax 时:

<form id="Form1" asp-action="Register" asp-controller="UserPanel" method="post">
    <div class="row">
        <div class="col-lg-5 col-md-5 col-sm-12 col-12  .sm-right" id="margin-top">
            <span>Name:</span>
            <input type="text" asp-for="Name" class="form-control">
        </div>
        <div>
            <span>Number:</span>
            <input type="text" asp-for="Number" class="form-control">
        </div>
    </div>
    <input type="reset" value="send" id="ajax-button" class="btn btn-success btn-sm waves-effect waves-light submit-btn" />
</form>

脚本:

<script>
    $(document).ready(function () {
        var url = '@Url.Action("Register", "UserPanel")';
        var data = $('#Form1').serialize();
        $('#ajax-button').click(function () {
            debugger
            $.ajax({
                type: "POST",
                data: data,
                url: url,
                contentType: 'application/json; charset=utf-8',
                success: function (result) {
                    alert('Done');
                },
                error: function () {
                    alert("error");
                }
            });
        })
    })
</script>

我添加了标签助手

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, SmsWebClient
@using Microsoft.AspNetCore.Razor.TagHelpers;

在输入ajax之前值为null,图像:

enter image description here

最佳答案

请移动

var data = $('#Form1').serialize();

到下面

$('#ajax-button').click(function () {

事实上,您的代码应该是:

<script>
    $(document).ready(function () {
        var url = '@Url.Action("Register", "UserPanel")';
        $('#ajax-button').click(function () {
        var data = $('#Form1').serialize();
            debugger
            $.ajax({
                type: "POST",
                data: data,
                url: url,
                success: function (result) {
                    alert('Done');
                },
                error: function () {
                    alert("error");
                }
            });
        })
    })
</script>

In your code data set when docuement loaded and for this reason the value is null

关于json - 为什么使用Ajax时输入值为NULL?(ASP.NET CORE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55890954/

相关文章:

java - 用java将json序列化为rdf

c# - ASP.NET Core 托管的 Blazor 模板中的授权问题

c# - 下面的PUT方法代码中是否需要int id?

c# - 如何在错误 JSON 的反序列化过程中忽略异常?

javascript - 如何显示具有 XML 数据的字符串

json - 如何在数组数组上执行OPENJSON

php - 如何在下拉更改事件中调用 AJAX 请求?

javascript - 如何在弹出窗口中登录然后关闭它

ruby-on-rails - JBuilder as_json to_json

jQuery ajax 不会在 404 错误上触发 ajaxStop