我想从我的AJAX中检索一个JSON,其格式为
{ID_USER : ID_INSTRUCTION}
我的JSON结果:
[{"658":"81"},{"658":"82"},{"658":"90"},{"658":"101"}]
这是我的代码jQuery for post AJAX:
$("#boutton-add").on('click',function (e) {
e.preventDefault();
var newFormData = [];
var usr = $('.usr_id').attr('id');
jQuery('.tab_inst tr[name="inst"]').each(function (i) {
var tb = jQuery(this);
var obj = {};
tb.find('button[name="delete"]').each(function () {
obj[usr] = this.id;
});
if (obj[usr] != null)
newFormData.push(obj);
});
var jsonresult = JSON.stringify(newFormData); // object return instruction of user after removing and adding informations
//alert(jsonresult);
//----------------------ajax to posting json to actionresult
$.ajax({
type: 'POST',
url: '/Usr_Inst/set_user_inst/',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: jsonresult,
traditional: true,
success: function (data) {
alert(jsonresult);
}
});
});
现在一切顺利。
现在我想在我的USER_INSTRUCTION表中添加或删除具有两列ID_USER和ID_INSTRUCTION的程序,为此,我需要一个参数为IEnumerable <USER_INSTRUCTION>
的ActionResult方法。
public ActionResult set_user_inst(IEnumerable<USER_INSTRUCTION> jsonresult)
{
// adding or removing programs.
}
我的模型类就像:
[Table("DPH.USER_INSTRUCTION")]
public partial class USER_INSTRUCTION
{
[Key]
public decimal ID_USER { get; set; }
public decimal ID_INSTRUCTION { get; set; }
public virtual INSTRUCTION INSTRUCTION { get; set; }
public virtual USERS USER { get; set; } }
项目运行时我从参数中的MVC控制器获得的值是ID_USER = 0 an ID INSTRUCTION = 0
答案 0 :(得分:1)
您将以下键值对发布到服务器,但您尝试将其绑定到IEnumerable<string>
。
[{ "658": "81" }, { "658": "82" }, { "658": "90" }]
根据方法参数IEnumerable<string>
,您希望将数据保存到客户端的数组中,如此["81" ,"82" , "90" ]
,并将其发布到服务器。
- 或 -
您发布以下JSON,并将其绑定到服务器上的强类型模型。
[{ "Number": "81" }, { "Number": "82" }, { "Number": "90" }]
public class UserModel
{
public string Number { get; set; }
}
[HttpPost]
public ActionResult SetUserInst(IEnumerable<UserModel> collection)
{
// C# Method name should start with Capital.
return View();
}