Javascript Jquery Ajax和MVC5 httpPost未收到任何值

Javascript Jquery Ajax和MVC5 httpPost未收到任何值,javascript,c#,jquery,asp.net,ajax,Javascript,C#,Jquery,Asp.net,Ajax,我尝试将值从视图发送到控制器。 已调用控制器中的方法,但值仍为NULL 这里是Javascript部分: GUIRequests.prototype.SetNewItemDeliveryValues = function () { var modelNumberID = this.GetValue('#ModelNumberID'); this.Request.GetPreOrderIDForModelNumberID(modelNumberID); //InventValue

我尝试将值从视图发送到控制器。 已调用控制器中的方法,但值仍为NULL

这里是Javascript部分:

GUIRequests.prototype.SetNewItemDeliveryValues = function () {
    var modelNumberID = this.GetValue('#ModelNumberID');

    this.Request.GetPreOrderIDForModelNumberID(modelNumberID); //InventValueRequest
    this.Request.GetShortfallAndOverdeliveryInNewItemDelivery(modelNumberID);
}

InventValueRequest.prototype.GetPreOrderIDForModelNumberID = function (_modelNumberID) {
    this.CallAjax("/NewItemDelivery/GetPreOrderIDForModelNumberID", _modelNumberID, CallbackMethods.SetPreOrderID);
}

//Private
InventValueRequest.prototype.CallAjax = function (_url, _data, _successFunctionPointer) {
    $.ajax({
        type: 'POST',
        url: _url,
        contentType: 'application/json',
        data: JSON.stringify(_data),
        success: _successFunctionPointer,
        error: InventValueRequest.HandleError
    });
}
Asp.Net MVC5(C#)部分

    [HttpPost]
    public ActionResult GetPreOrderIDForModelNumberID(string _modelnumberID)
    {
        String preOrderID = "";
        if (_modelnumberID == null)
        {
            preOrderID = "No value received";
        }
        else 
        {
            //Do something
        }

        return Json(preOrderID);
    }
我的代码可能有什么问题?为什么我的C部分没有收到任何值?看起来这些值发送正确,至少有效负载包含了我期望的值。

请尝试以下代码:

 $.ajax({
        type: 'POST',
        dataType: 'text',
        url: _url,
        contentType: 'application/json',
        data: "_modelnumberID=" + _data,
        success: _successFunctionPointer,
        error: InventValueRequest.HandleError
    });
请尝试以下代码:

 $.ajax({
        type: 'POST',
        dataType: 'text',
        url: _url,
        contentType: 'application/json',
        data: "_modelnumberID=" + _data,
        success: _successFunctionPointer,
        error: InventValueRequest.HandleError
    });

\u数据
应具有如下属性
\u modelnumberID

 _data = {'_modelnumberID': '1'}

\u数据
应具有如下属性
\u modelnumberID

 _data = {'_modelnumberID': '1'}

理想的解决方案是使用视图模型

public class Create
{
public string _modelnumberID{get;set;}
}
您的HttpPost操作将接受此对象

[HttpPost]
public ActionResult View(Create model)
{
  // do something and return something
}
而ajax将是

$('.submit').click(function () {
var myData = {
    _modelnumberID: _data
}
$.ajax({
    url: '/Controller/Action',
    type: 'POST',
    data: myData,
    processData: false  
}).done(function () {

}).fail(function () {

});
});

理想的解决方案是使用视图模型

public class Create
{
public string _modelnumberID{get;set;}
}
您的HttpPost操作将接受此对象

[HttpPost]
public ActionResult View(Create model)
{
  // do something and return something
}
而ajax将是

$('.submit').click(function () {
var myData = {
    _modelnumberID: _data
}
$.ajax({
    url: '/Controller/Action',
    type: 'POST',
    data: myData,
    processData: false  
}).done(function () {

}).fail(function () {

});
});
试试这个


试试这个

\u data
是否具有属性
\u modelnumberrid
?不,这就是问题所在:/n现在我觉得自己很愚蠢。非常感谢您解决了这个问题。
\u data
是否具有属性
\u modelnumberrid
?不,这就是问题所在:/n现在我觉得自己很愚蠢。非常感谢您解决了这个问题,它意味着您的_数据没有任何价值。@Bongoit意味着您的_数据没有任何价值。@BongoI用属性(u modelNumberId)创建了一个对象并设置了它的值,然后JSON将其字符串化,但您是对的,我的对象应该有一个属性(u modelnumberrid)创建了一个对象并设置了它的值,然后是JSON字符串化了,但你是对的,我的对象应该有一个属性。他尝试以post的形式发送数据,通过这样做,数据将以Get的形式发送。你想详细说明具体的方式吗?我在我的控制器方法上安装了一个HttpPost过滤器,但它仍然有效。他尝试以post的形式发送数据,通过这样做,数据将以Get的形式发送。您想详细说明具体的方式吗?我在我的控制器方法上安装了一个HttpPost过滤器,它仍然有效。