如何将 Ajax 调用参数绑定到我的控制器模型参数

我不知道我在这里错过了什么。我正在尝试填充Jquery对象并将该对象发送到具有模型作为参数并使其正确绑定的控制器。


我知道Ajax调用有效,因为我在控制器中遇到了断点。


这是我的Jquery,用于创建我将通过ajax发送的对象


    var testObj = {};

    testObj.empNum = '1234';

这是我的Ajax Call:


var url = BASE_URL + "Assessment/testing";

$.post({

    url: url,

    data: {

          test: testObj

          },

    success: function (data) {

               console.log(data)

           },

    dataType: 'JSON'

});

这是我的模型:


public class test

{

    public string empNum { get; set; }

}

和我的控制器:


[HttpPost]

public JsonResult testing(test t)

{

    return Json(t, JsonRequestBehavior.AllowGet);

}

我期望控制器中的 t 包含 empNum = 1234 的测试模型,但它一直显示为 null。


三国纷争
浏览 132回答 2
2回答

千巷猫影

尝试使用它将 js 对象转换为 c# 模型$.post({url: url,contentType: "application/json; charset=utf-8",data: JSON.stringify(testObj),或对于多个参数:$.post({url: url,contentType: "application/json; charset=utf-8",data: JSON.stringify( {test: testObj} ),

牧羊人nacy

很抱歉浪费大家的时间,但问题是:控制器中的此行的参数为 t:public JsonResult testing(test t)在我的Ajax调用中,参数名称必须与控制器上的参数名称匹配。所以在这种情况下;测试应更改为 t 以匹配控制器       data: {           test: testObj           },
打开App,查看更多内容
随时随地看视频慕课网APP