簡體   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