从 AJAX 帖子访问 C# 控制器中的表单数据

问题描述

我使用 AJAX 将表单数据发送到 c# 控制器,但是我不知道如何访问控制器内的数据。我试图将表单数据作为 Person 对象传递到控制器中,但我只是返回 system.Models.Person。我是 C# 新手,非常感谢任何帮助,非常感谢。

Javascript

$('#myForm').submit(function(e){
    e.preventDefault();
    const formData = new FormData(e.target);
    $.ajax({
        url: '/Home/GetFormData',type: 'POST',data: {formData: formData},success: function(resultData){
            console.log(resultData)
        },error: function(){
            //do something else
        }
    })
}

型号

public class Person 
{
    public string name { get; set; }
    public string age { get; set; }
}

控制器

public string GetFormData(Person formData)
{
    string name = formData.name.ToString();

    return name;

}

解决方法

如果您要发送表单值,请使用序列化:

$form = $(this).serialize();

如果您要发送文件进行上传等,请使用 FormData。

在你的数据声明中,按原样设置(不将其声明为文字 JS 对象)

data: $form

最终代码如下所示:

$('#myForm').submit(function(e){
e.preventDefault();
$form = $(this).serialize();
$.ajax({
    url: '/Home/GetFormData',type: 'POST',data: $form,success: function(resultData){
        console.log(resultData)
    },error: function(){
        //do something else
    }
})
,

下面的帖子会对你有所帮助

Post Data Using jQuery in ASP.NET MVC

你的代码应该是

模型类 Person.cs

 public class Person
{
    public string name { get; set; }
    public string age { get; set; }
}

用于获取表单数据的 jQuery 函数,我假设您的表单上有提交按钮

 $(document).ready(function () {
    $("#btnSave").click(function () { //Your Submit button
        $.ajax(
            {
                type: "POST",//HTTP POST Method
                url: "Home/GetFormData",// Controller/View 
                data: { //Passing data
                    name: $("#txtname").val(),//Reading text box values using Jquery 
                    age: $("#txtage").val(),}

            });

    });
});

你的 HomeController 方法

 [HttpPost]
    public ActionResult GetFormData(Person obj)
    {
        string name = obj.name;
        string age = obj.age;
        //Once you have data here then you can pass anywhere i.e. database or some other method

        return View();
    }

控制器中的表单值

Values in the controller method

如果需要澄清,请告诉我。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...