繁体   English   中英

对象字段为私有时,javascript调用MVC Controller参数始终为null

[英]javascript call MVC Controller parameter always null when object field is private

我使用javascript调用控制器来处理函数。 当字段设置为私有时,参数值(摘要中的名称)为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) {
    ....
    }

是的,它应该是公共的,因为defaultmodelbinder将浏览器请求映射到数据对象。 此类提供了模型绑定器的具体实现。

DefaultModelBinder类将以下类型的对象映射到浏览器请求:

基本类型,例如String,Double,Decimal或DateTime对象。

模型类,例如人,地址或产品。

集合,例如ICollection,IList或IDictionary。

来源: https : //msdn.microsoft.com/zh-cn/library/system.web.mvc.defaultmodelbinder(v=vs.118).aspx

希望它有用,让我知道您的想法或反馈

谢谢

KARTHIK

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM