非常直接$ .post(网址,数据)
数据就是这个对象
var model = {
applNo: pdAppNo,
amount: 999,
schldDate: new Date(),
userId: "corey",
tdcId: "234234234"
};
调用设置为
的MVC控制器 [HttpPost]
public JsonResult PostScheduleMakeUpPayment(object model)
{
//return _updateTdc.ProcessMakeUpPayment(applNo, amount, schldDate, userId, tdcId);
return Json("Success:True");
}
在'模型中'控制器没有显示json数据,只有' {object}'
所以MVC不允许我将json发布到对象类型?
答案 0 :(得分:1)
您需要创建命名类。
public class TestModel
{
public string applNo {get;set;}
public int amount{get;set;}
public DateTime schldDate{get;set;}
public string userId{get;set;}
public string tdcId{get;set;}
}
[HttpPost]
public JsonResult PostScheduleMakeUpPayment(TestModel model)
{
//return _updateTdc.ProcessMakeUpPayment(model.applNo, model.amount, model.schldDate, model.userId, model.tdcId);
return Json("Success:True");
}
答案 1 :(得分:1)
Json字符串是键值对的集合。您可以将对象作为json字符串发布,并使用函数将其值添加到字典中,然后在控制器函数中使用它。例如:
public static Dictionary<string,object> BinderModel(string model)
{
Dictionary<string,JToken> result = new Dictionary<string,object>();
JObject jObject = JObject.Parse(model);
foreach (JProperty x in (JToken)jObject )
{
result.Add(x.Name,x.Value);
}
return result;
}
然后你的控制器就像这样
[HttpPost]
public JsonResult PostScheduleMakeUpPayment(string model)
{
Dictionary<string,object> values = BinderModel(jsonString);
//return _updateTdc.ProcessMakeUpPayment(values["applNo"], values["amount"], values["schldDate"], values["userId"], values["tdcId);
return Json("Success:True");
}
模型值的类型取决于ProcessMakeUpPayment输入参数的类型。您可能需要在调用之前或在其中进行一些转换
答案 2 :(得分:0)
我猜MVC控制器上的对象类型参数不受支持/设计不好。与MVC一起不支持其视图/ Razor语法上的泛型类型。