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