1

我有一个 WebService,它需要通过 Json 定义类型的列表。

班级:

public class myType
{
    public int id { get; set;}
    public int? varA { get; set;}
    public string varB { get; set;}
    public float? varC { get; set;}
}

逻辑:

//Passed JSON --> Data:{'id':'1','varA':''}
[HttpPost]
public JsonResult Update(myType Data)
{
    //Data ends up with value's id = 1; varA = null; varB = null; varC = null;
    //So how can I find that valueA was actually passed with a null value, and all the 
    //others are just nulling by default?
    if (Data.varA.HasValue) dbItem.varA = Data.varA
    ...
}

让我们假设 myType 有几个值,例如 {id, varA, varB, varC} 除了 id 之外的所有值都可以为空。

现在,我故意只想清空 1 个值

Data:{'id':'1','valueA':''}问题是,为了节省带宽,我只发送 id,以及 JSON 中已更新的任何值,例如id:对象的所有其他变量的空值。

那么,我该怎么做才能知道哪些发出的变量是通过 json 发送到 webmethod 的呢?所以我可以分辨出我真正想要为空的变量是什么?

更多信息:使用 ExtJS 4 作为前端。这个问题与 Ext.Store 的

4

1 回答 1

0

MVC 尝试根据名称解析您发送给它的值(通过正常的反序列化)。因此,如果您不指定该值,它将按预期发送 null,因为您具有可为空的属性。为什么不在 valueA 中传递实际值,例如 -1。如果您不为可空属性指定值,它们将为空...

于 2012-10-30T20:18:47.597 回答