2015-12-29 2 views
0

Я пытаюсь отправить значения из своего представления в свой контроллер. Метод в моем контроллере вызывается, но значение (и) все еще остается NULL.JQuery Ajax и MVC5 httpPost no value received

Вот 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#? Кажется, что значения получают правильно, хотя бы полезная нагрузка содержит значения, которые я ожидал бы.

+1

Имеет ли '_data' свойство' _modelnumberID'? – Azim

+0

Нет, это была проблема:/сейчас я чувствую себя очень глупо. Большое спасибо, что решил – Bongo

ответ

2

_data должны иметь свойство _modelnumberID как следующее.

_data = {'_modelnumberID': '1'} 
+0

Я создал объект с свойством _modelNumberId и установил его значение, после чего JSON стягивал его, но вы правы, мой объект должен имеют свойство – Bongo

1

попробовать ниже код:

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

это печально не работает – Bongo

+0

это означает, что ваша _data не имеет значения. @ Bongo –

1

Идеальное решение было бы использовать модель представления.

public class Create 
{ 
public string _modelnumberID{get;set;} 
} 

И ваше действие HttpPost будет принимать объект этого

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

и Аякса будет

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

}).fail(function() { 

}); 
}); 
0
$.ajax({ 
     type: 'POST', 
     url: _url+"?_modelnumberID="+ _data, 
     success: _successFunctionPointer, 
     error: InventValueRequest.HandleError 
    }); 

Попробуйте это.

+0

Он пытается отправить данные как сообщение, сделав эти данные, пошлют как получите –

+0

Вы хотели бы уточнить, как именно? Я поместил фильтр HttpPost на мой метод контроллера, и он все еще работал. –

+0

жаль, что вы правы. –