簡體   English   中英

.Net Core 2.2 綁定 - model 屬性為 null

[英].Net Core 2.2 binding - model properties are null

model 我嘗試將我的 Json 綁定到:

public class UserText
{
    public string Title { get; set; }
    public string Description { get; set; }
    public string Content { get; set; }
    public string MainImageStr { get; set; }
    public List<int> CategoriesIds { get; set; }
    public List<string> LocationStrList { get; set; }
}

public class AdminText : UserText
{
    
    public int Type { get; set; }
    public string KeyWords { get; set; }
    public string HomepageTitle { get; set; }
    public string HomepageDescription { get; set; }
    public string TitleAltOfImage { get; set; }
    public bool IsHomePageText { get; set; } = false;
    public int HomepageOrder { get; set; }
    public bool EnableComments { get; set; } = true;
    public bool IsMultiLanguage { get; set; } = false;
    public short LanguageType { get; set; }
    public int Status { get; set; }
}

JSON:

{
    "LocationStrList": "7_110",
    "CategoriesIds": "33",
    "TitleAltOfImage": "asdasdasdasdasdasdssss",
    "KeyWords": "asdasdasdasdasdasdssss",
    "EnableComments": "false",
    "Type": "2",
    "LanguageType": "1",
    "Status": "1",
    "IsHomePageText": "false",
    "HomepageTitle": "asdasdasdasdasdasdssss",
    "HomepageDescription": "asdasdasdasdasdasdssss",
    "HomepageOrder": "2",
    "IsMultiLanguage": "false"
}

Mvc Controller 動作簽名:

public async Task<JsonResult> AddText(AdminText newText)

model的每個屬性都是null,這是為什么呢?

CategoriesIds 和 LocationStrList 字段屬於列表類型,您需要將這兩個字段的值作為 arrays 傳遞。

{
    "LocationStrList": ["7_110"],
    "CategoriesIds": ["33"],
    "TitleAltOfImage": "asdasdasdasdasdasdssss",
    "KeyWords": "asdasdasdasdasdasdssss",
    "EnableComments": "false",
    "Type": "2",
    "LanguageType": "1",
    "Status": "1",
    "IsHomePageText": "false",
    "HomepageTitle": "asdasdasdasdasdasdssss",
    "HomepageDescription": "asdasdasdasdasdasdssss",
    "HomepageOrder": "2",
    "IsMultiLanguage": "false"
}

The data type of your List,int,bool is string in your json.So you need to change the data type in json.And in mvc,if you want to pass json data to controller,you need to use [From Body].這是一個演示工作: 控制器:

[HttpPost]
        public async Task<JsonResult> AddText([FromBody]AdminText newText) {
            return Json("ok");
        }

json數據:

{"LocationStrList": ["7_110"],
    "CategoriesIds": [33],
    "TitleAltOfImage": "asdasdasdasdasdasdssss",
    "KeyWords": "asdasdasdasdasdasdssss",
    "EnableComments": false,
    "Type": 2,
    "LanguageType": 1,
    "Status": 1,
    "IsHomePageText": false,
    "HomepageTitle": "asdasdasdasdasdasdssss",
    "HomepageDescription": "asdasdasdasdasdasdssss",
    "HomepageOrder": 2,
    "IsMultiLanguage": false
}

結果: 在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM