16

jQueryUI のオートコンプリートを使用して、ユーザーの検索を許可しています。ドキュメントには、次の形式でデータのソースに配列を使用できると記載されています。[ { label: "Choice1", value: "value1" }, ... ]

Usersビューモデルによって継承される一意のリストを提供する基本クラスがあります。ビューモデルには次の機能があります。

public List<TestJson> GetUsers()
{
    return AvailableUsers
        .Select(u => new TestJson
            {
                Label = u.LastName + ", " + u.FirstName + "(" + u.UserId + ")",
                Value = u.UserId
            }).ToList();
}

public class TestJson
{
    public string Label { set; get; }
    public string Value { get; set; }
}

私の見解では、上記を次のように使用します。

var userNameList = @Html.Raw(Json.Encode(Model.GetUsers()));

$("#UserName").autocomplete({
    source:userNameList 
});

userNameListのように表示されます。

[ { "Label": "Choice1", "Value": "value1" }, ... ]

それ以外の:

[ { label: "Choice1", value: "value1" }, ... ]

配列を正しい形式で表示するにはどうすればよいですか?

編集:コメントからの入力に基づいて、これらの両方の形式が実際に機能的に同等であることを確認しました。もう少しテストを行ったところ、大文字labelvalue小文字が区別されることがわかりました。メンバーを小文字に変更するとうまくいくようですが、その解決策が最善だとは思いません。: (これは何と呼ばれますか?) の左側の文字列を小文字に変更する方法に関する提案はありますか?

4

6 に答える 6

2

シンプルな Employee オブジェクト:

public class Employee
{
public string Name { get; set; }
public string Age { get; set; }
public string ID { get; set; }   
}

それらのいくつかのインスタンスをリストに追加します。

Employee oEmployee1 = 
new Employee{Name="Pini",ID="111", Age="30"};

Employee oEmployee2 = 
new Employee { Name = "Yaniv", ID = "Cohen", Age = "31" };
Employee oEmployee3 = 
new Employee { Name = "Yoni", ID = "Biton", Age = "20" };

List<Employee> oList = new List<Employee>() 
{ oEmployee1, oEmployee2, oEmployee3 };

次にシリアル化します。

System.Web.Script.Serialization.JavaScriptSerializer oSerializer = 
new System.Web.Script.Serialization.JavaScriptSerializer();
string sJSON = oSerializer.Serialize(oList);

出力は次のとおりです。

[{"Name":"Pini","Age":"30","ID":"111"},
{"Name":"Yaniv","Age":"31","ID":"Cohen"},
{"Name":"Yoni","Age":"20","ID":"Biton"}]

以下のリンクにも同様の例があります

MVC 4 でオブジェクトを JSON に変換する

于 2013-09-23T18:42:34.010 に答える
0

MVCを使用していると思います。WebAPI はデフォルトで camelCase になり、MVC はデフォルトで PascalCase になります。

参照: MVC 4およびhttp://www.matskarlsson.se/blog/serialize-net-objects-as-camelcase-jsonでの適切な JSON シリアル化。

于 2013-09-23T19:12:54.160 に答える