Post 方法在 ASP.NET Core Razor 页面中不起作用

问题描述 投票:0回答:1

我正在尝试将表单提交到数据库,但是当我单击确认按钮时,出现此错误:

enter image description here

这是我的表格:

enter image description here

这是我的索引类:

enter image description here

这是我的ajax代码:

(https://i.stack.imgur.com/EA8a9.png)

我尝试了很多方法,但无法解决问题。有人可以帮助我吗?

asp.net-core error-handling jquery-plugins asp.net-ajax ajaxform
1个回答
0
投票

Post 方法在 ASP.NET Core Razor 页面中不起作用

如果您可以包含代码片段而不是图像,那就更好了。但是,根据您的场景和描述,可以说,它可以通过任何一种方式修复,

您可以在 jquery 函数中获取属性值,然后发布到您的 razor 页面处理程序,或者您可以直接反序列化您的表单值并发布到页面处理程序。

让我们实际看看如何在 razor 页面中使用 ajax 实现 post 请求:

演示模型:

 public class DemoModelClass
    {
        [Display(Name = "First Name")]
        public string FirstName { get; set; }
        [Display(Name = "Last Name")]
        public string LastName { get; set; }


    }

Razor.cs 文件:

public class AjaxPostRequestModel : PageModel
    {
        [BindProperty]
        public DemoModelClass? FormValue { get; set; }
        public void OnGet()
        {
        }

        public ActionResult OnPost()
        {

            var checkSubmittedVaue = FormValue;
            // Process data as needed
            // Call your database layer 
            return new JsonResult(new { success = true });
        }

    }

Razor.cshtml:

@page
@model RazorPageDemoApp.Pages.AjaxPostRequestModel
@{
}


<form method="post" class="col-sm-6">
    <div class="form-group row">
        <label asp-for="FormValue.FirstName" class="col-sm-3 col-form-label"></label>
        <div class="col-sm-7">
            <input asp-for="FormValue.FirstName" class="form-control">
        </div>
    </div>
    <div class="form-group row">
        <label asp-for="FormValue.LastName" class="col-sm-3 col-form-label"></label>
        <div class="col-sm-7">
            <input asp-for="FormValue.LastName" class="form-control">
        </div>
    </div>
    <div class="form-group row">

        <div class="col-sm-7 offset-sm-3">
            <button class="btn btn-primary" id="submit">Submit</button>
        </div>
    </div>
</form>

@section scripts {
    <script>
        $(function () {
            $('#submit').on('click', function (evt) {
                evt.preventDefault();
                $.post('', $('form').serialize(), function () {
                    alert('Razor page submitting form value using jQuery');
                });
            });
        });

       
    </script>
}

输出:

注意:更多详情请参考此官方文档

© www.soinside.com 2019 - 2024. All rights reserved.