我使用javascript调用控制器来处理函数。 当字段设置为private时,参数值(摘要中的名称)为null。 当字段设置为public时,它可以工作。 是公开的唯一途径吗?还是有更好的方法呢? 提前谢谢。
我的对象
[DataContract]
public class Summary
{
[DataMember]
public int id { private set; get; }
[DataMember]
public string name { private set; get; }
public summary() {}
public summary(int id, string name)
{
id = id;
name = name;
}
}
MVC控制器
public ActionResult SetSummary(Summary summary)
{
string anme = summary.name; **<-- null if private**
...
}
的Javascript
$http.post("MyController/SetSummary", JSON.stringify({
summary: mySummaryObject}))
.success(function (data, status, headers, config) {
....
}
答案 0 :(得分:0)
是的,它应该是公共的,因为defaultmodelbinder将浏览器请求映射到数据对象。此类提供模型绑定器的具体实现。
DefaultModelBinder类将以下类型的对象映射到浏览器请求:
原始类型,例如String,Double,Decimal或DateTime对象。
模型类,例如人物,地址或产品。
集合,例如ICollection,IList或IDictionary。
来源:https://msdn.microsoft.com/en-us/library/system.web.mvc.defaultmodelbinder(v=vs.118).aspx
希望它有用,请让我知道您的想法或反馈
由于
KARTHIK