请教大牛ModelBinder的问题

shizheng163 2017-03-27 07:44:42
项目架构是ASP.NET ,MVC4框架
现在问题是使用ajax传送json串到控制器,modelBinder没有正确绑定,小弟初学者,还请各位大牛多多指教。
请各位大侠指点迷津啊!!!

//控制器函数
[HttpPost]
public ActionResult Insert(DB_BedType model,List<CG_ChargeStandard>Addlist)//插入只有addlist
{
string retMsg = "";
bool ret = false;

try
{
foreach (var info in Addlist)
_chargeStandardService.Add(info, out retMsg);
ret = _bedTypeService.Add(model, out retMsg);
}
catch (Exception e)
{
retMsg = string.Format("发生错误:{0}", e.Message);
Util.CLogServiceHandler.ErrorLogAdd(retMsg);
}

return Content(retMsg);
}


//DB_BedType
public partial class DB_BedType
{
public int ID { get; set; }
public string Code { get; set; }
public string Name { get; set; }
public string Remark { get; set; }
public string Fk_ChargeType { get; set; }
.....................//一些导航属性删掉了
}


// CG_ChargeStandard
public partial class CG_ChargeStandard
{
public int ID { get; set; }
public int Fk_BedType { get; set; }
public System.DateTime EffectTime { get; set; }
public decimal CostStandard { get; set; }
public string Remarks { get; set; }
public Nullable<decimal> DepositStandard { get; set; }
public System.DateTime OperatorTime { get; set; }
public string OperatorCode { get; set; }

public virtual DB_BedType DB_BedType { get; set; }
}


前台ajax 请求的json串

chrome浏览器开发者工具截取到的数据


前台js部分代码,中间有部分代码未用到,已删减

var postData = {};
var BedTypeJson = { 'ID': ID, 'Code': $code.val(), 'name': $name.val(), 'remark': $remark.val(), 'FK_ChargeType': $('#ChargeType').combobox('getValue') };
var Addlist = [];
for (var i = 0; i < rows.length; i++) {
var o = rows[i];
if (o.waitOpeartor == 1) {
var json = {
Id: 0,
Fk_bedType: ID,
EffectTime: o.StartTime,
CostStandard: o.HotelMoney,
DepositStandard: o.DepositType
};
Addlist.push(json);
}
postData['model'] = BedTypeJson;
postData['Addlist'] = Addlist;
alert(JSON.stringify(postData));
$.ajax({
type: 'POST',
url: url,
dataType: 'text',
data: postData,
success: function (msg) {

if (msg == '') {
$("#DivAdd").dialog("close");
$("#grid").datagrid("reload");
$('#grid').datagrid('clearSelections');
$('#grid').datagrid('clearChecked');
$.messager.alert('系统提示', '操作成功!', 'info');
}
else {
$.messager.alert('系统提示', "操作失败:" + msg, 'error');
}
}
});
...全文
121 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wq1234wq 2017-03-28
  • 打赏
  • 举报
回复
你浏览器提交的是Json字符串 ,接收的Action的参数请用string类型,然后再用Json库将该Json字符串反序列化回来。

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧