簡體   English   中英

ASP.NET MVC5 json值綁定到腳手架

[英]Asp.net MVC5 json value binding to scafolding

我正在使用SyncFusion Asp.Net MVC網格,在此我嘗試在服務器端進行過濾,並且發送到服務器的json如下所示

但是在ViewModel中,對象屬性以null的形式出現而不是綁定

傑森

{"select":["Area","Id"],"where":[{"isComplex":false,"field":"Area","operator":"startswith","value":"test","ignoreCase":true}],"sorted":[{"name":"Area","direction":"ascending"}]}

我創建了如下模型,並將其傳遞給控制器​​,但未綁定。

 public class UserViewModel
    {
        public int skip { get; set; }
        public int take { get; set; }
        public Sort sorted { get; set; }
        public string[] group { get; set; }
        //Grid Action Params;
        public string action { get; set; }
        public string key { get; set; }
        public string keyColumn { get; set; }
        public string[] select { get; set; }
        public Search search { get; set; }
        public Where where { get; set; }
        public ApplicationUser value { get; set; }
    }

    public class Where
    {
        public bool isComplex { get; set; }
        public string field { get; set; }
        public string @operator { get; set; }
        public string @value { get; set; }
        public bool ignoreCase { get; set; }

    }
    public class Sort
    {
        public string name { get; set; }
        public string direction { get; set; }
     //   "sorted":[{"name":"Area","direction":"ascending"}],"group":["Area"]
    }

    public class Search
    {
        public string[] fields { get; set; }

        public string @operator { get; set; }

        public string key { get; set; }

        public bool ignoreCase { get; set; }
    }

控制器方式

 public async Task<ActionResult> DataSource(UserViewModel editParams)
   {

   }

您發送的JSON似乎根本與您的視圖模型不匹配:

{
    "select": [
        "Area",
        "Id"
    ],
    "where": [
        {
            "isComplex": false,
            "field": "Area",
            "operator": "startswith",
            "value": "test",
            "ignoreCase": true
        }
    ],
    "sorted": [
        {
            "name": "Area",
            "direction": "ascending"
        }
    ]
}

考慮編寫一個符合以下結構的視圖模型:

public class UserViewModel
{
    public string[] Select { get; set; }
    public Where[] where { get; set; }
    public Sorted[] sorted { get; set; }
}

public class Where
{
    public bool IsComplex { get; set; }
    public string Field { get; set; }
    public string Operator { get; set; }
    public string Value { get; set; }
    public bool IgnoreCase { get; set; }
}

public class Sorted
{
    public string Name { get; set; }
    public string Direction { get; set; }
}

現在您的控制器操作可以將此視圖模型用作參數:

public async Task<ActionResult> DataSource(UserViewModel editParams)
{
    ...
}

我對您似乎正在使用的SyncFusion Asp.Net MVC grid不熟悉,但是您應該確保Content-Type: application/json請求HTTP標頭也與AJAX請求一起發送,以便ASP.NET MVC模型綁定程序知道從客戶端發送的內容類型。 使用Web瀏覽器的開發人員工具欄或Fiddler之類的工具來檢查從客戶端發送的請求,並確保存在此標頭。 否則,將不會綁定視圖模型。

暫無
暫無

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

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