尝试将字典从JS传递到MVC但没有成功。数据(mvc控制器中的reportIdAndStatus)为空。
我正在使用angular $ resource和MVC 3.谢谢。
角度控制器:
var reportStatusdictionary = {};
//build a dictionary
for (var x = 0; x < reports.length; x++) {
reportStatusdictionary[reports[x].Id] = reports[x].StatusId
}
reportsService.getReportStatusComment({ reportStatusdictionary: reportStatusdictionary }
角度资源定义:
getReportStatusComment:
{
method: 'GET',
params: { reportIdAndStatus: '@reportIdAndStatus', command: 'GetReportStatusComment' },
isArray: false
}
MCV控制器:
[HttpGet]
public string GetReportStatusComment(Dictionary<Guid, int> reportIdAndStatus)
浏览器中的请求:
答案 0 :(得分:0)
我建议创建一个视图模型,以简化和简化调试,而不是字典。你可以这样做:
创建如下视图模型:
public class ReportViewModel
{
public Guid Id{get;set;}
public int StatusId{get;set;}
}
然后你的控制器看起来像
[HttpGet]
public string GetReportStatusComment(IEnumerable<ReportViewModel> reportViewModel)
然后你的获取网址将是
http://localhost:53854/report/getreportstatuscomment?[0].id=guidValue1&[0].StatusId=1&[1].id=guidValue2&[1].StatusId=2
您可以在JavaScript代码中轻松构建这样的url结构。您可以在@Darin Dimitrov's answer,Phil Haack's blog post和MSDN magazine article了解有关模型绑定的更多信息。
<强>更新强>
如果您不想构建该url结构,那么您可以将JSON发送到服务器。