Отправить массив объектов в действие контроллера .NETJavascript

Форум по Javascript
Ответить
Anonymous
 Отправить массив объектов в действие контроллера .NET

Сообщение Anonymous »

Я пытаюсь передать массив объектов JavaScript в параметр List действий контроллера .NET. Ниже мой C#

Код: Выделить всё

    public bool ImportACE([FromBody] List elements)
{
foreach(ACLElement e in elements)
{
uint srcAddrInt = ConvertIpAddressToUInt(e.SRC_Addr);
Console.WriteLine($"The IP address {e.SRC_Addr} as an integer is: {srcAddrInt}");
}

return true;
}
Ниже приведена передаваемая мной переменная и вызов ajax

Код: Выделить всё

importData.push({
ACLId: 11,
DeviceId: 2,
ACLGroupId: 5,
ProtocolId: 27,
LiftDate: liftDate,
ActionDate: actionDate,
RemedyTckt: remedyTicket,
ITSMTckt: itsmTicket,
/* CommandView: cleanCmdVar,*/
SRC_Addr: srcAddr,
SRC_Mask: "0.0.0.0",
DST_Addr: "0.0.0.0",
DST_Mask: "255.255.255.255",
ArinInfo: arin,
FlagLogInput: 1,
FlagLog: 0,
Active: 0
});

Код: Выделить всё

var jsonData = JSON.stringify(importData);

$.ajax({
url: '/GAM/ACE/Import',
type: 'POST',
data: jsonData,
contentType: "application/json; charset=utf-8",
success: function (result) {
if (result) {
$('#loading-overlay').fadeOut();
} else {
alert("Error. Import unsuccessful.");
$('#loading-overlay').fadeOut();
}
},
error: function (jqXHR, textStatus, errorThrown) {
$('#loading-overlay').fadeOut();
alert("Unable to import data.  Error with /GAM/ACE/ImportAce ." + errorThrown);;
}
});
Вот модель, она довольно большая

Код: Выделить всё

 public class Element
{
[Required]
public int ElementId { get; set; }
public int DeviceId { get; set; }
public string Device { get; set; }
public int ACLId { get; set; }
public string ACL { get; set; }
public int ACLGroupId { get; set; }
public string ACLGroup { get; set; }
public int SequenceNum { get; set; }
public int ActionId { get; set; }
public bool PermitBool { get; set; }
public bool DenyBool { get; set; }
public string Action { get; set; }
public string Protocol { get; set; }
public int ProtocolId { get; set; }
public string SRC_Addr { get; set; }
public string SRC_Addr_Int { get; set; }
public string SRC_Mask { get; set; }
public string SRC_Mask_Int { get; set; }
public string SRC_OP { get; set; }
public string SRC_B_Range { get; set; }
public string SRC_E_Range { get; set; }
public string DST_Addr { get; set; }
public string DST_Addr_Int{ get; set; }
public string DST_Mask { get; set; }
public string DST_Mask_Int { get; set; }
public string DST_OP { get; set; }
public string DST_B_Range { get; set; }
public string DST_E_Range { get; set; }
public int FlagLog { get; set; }
public int FlagLogInput { get; set; }
public bool FlagLogBool { get; set; }
public bool FlagLogInputBool { get; set; }
public bool FlagTCPEst { get; set; }
public bool FlagTCPAck { get; set; }
public bool FlagTCPFin { get; set; }
public bool FlagTCPPsh { get; set; }
public bool FlagTCPRst { get; set; }
public bool FlagTCPSyn { get; set; }
public bool FlagTCPUrg { get; set; }
public int ICMPType { get; set; }
public string ICMPCode { get; set; }
public string ICMPMessage { get; set; }
public int IGMPType { get; set; }
public int FlagPrecedence { get; set; }
public string Precedence { get; set; }
public int TOSId{ get; set; }
public int FlagDSCP { get; set; }
public string DSCP { get; set; }
public int FlagFragments { get; set; }
public int DynamicTimeOut { get; set; }
public string DynamicName { get; set; }
public string TimeRangeName { get; set; }
public int FlagEvaluate { get; set; }
public string EvaluateAcl { get; set; }
public string ReflexiveAcl { get; set; }
public int ReflexiveTimeout { get; set; }
public string Remark { get; set; }
public string CommandView { get; set; }
public DateTime? LiftDate { get; set; }
public DateTime? ActionDate { get; set; }
public string RemedyTckt { get; set; }
public string ITSMTckt { get; set; }
public string ArinInfo { get; set; }
public int UserId { get; set; }
public DateTime AclTime { get; set; }
public bool Active { get; set; }
public bool Locked { get; set; }
public bool Permanent { get; set; }
public int Special { get; set; }
public int CMDType { get; set; }
public int CMDOther { get; set; }
public DateTime Modified { get; set; }
public DateTime Created { get; set; }
public long AuthorEDIPI { get; set; }
public long EditorEDIPI { get; set; }
public string Editor {  get; set; }
public string LogOptionId { get; set; }

}
Я не уверен, что делаю неправильно. Параметр элемента для контроллера получен и показывает объекты в списке. Но значения каждого объекта равны нулю. Никакие данные не проходят. Я вижу, что полезная нагрузка проходит правильно. Любые предложения приветствуются

Подробнее здесь: https://stackoverflow.com/questions/797 ... ler-action
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»