シリアル化されたデータをビューに送信し、ノックアウトコードにバインドしようとしています。私はjson.netライブラリを直列化のために使用しています。なぜなら、Jsonデータを返すコントローラがどのように表示されるかわからないからです。ここではサンプルコードは次のとおりです。シリアライズされますJson.netライブラリでシリアル化されたデータをビューに渡し、ノックアウトでバインドします。
マイビューモデル:
public class FranchiseInfoViewModel
{
public string FolderName { get; set; }
[JsonConverter(typeof(StringEnumConverter))]
public LobbyTemplateOptions LobbyTemplate { get; set; }
public List<LobbyTemplateOptions> LobbyTemplates { get; set; }
public void Initialize()
{
FolderName = "Test";
LobbyTemplate = LobbyTemplateOptions.G;
LobbyTemplates = new List<LobbyTemplateOptions>
{
LobbyTemplateOptions.G,
LobbyTemplateOptions.H,
LobbyTemplateOptions.I
};
列挙型:
[JsonConverter(typeof(StringEnumConverter))]
public enum LobbyTemplateOptions
{
G = 7,
H = 8,
I = 9
}
マイノックアウトコード:
$(function() {
omega.FranchiseInfo = (function() {
var FolderName = ko.observable();
var LobbyTemplates = ko.observableArray([]);
$.getJSON("FranchiseData", function (data) {
FolderName(data.FolderName);
for (var i = 0; i < data.LobbyTemplate.length; i++) {
LobbyTemplates.push(data.LobbyTemplate[i]);
}
});
return {
folderName: FolderName,
lobbyTemplates: LobbyTemplates
}
}());
ko.applyBindings(omega.FranchiseInfo);
})
}
が、私はどのように私の疑問に思ってシリアル化されたJsonデータをビューに渡すコントローラは、json.netを使用していないため、私は相対的ですビューにJSONデータを渡す
コントローラー:プログラミングのLY新しい
public JsonResult FranchiseData()
{
FranchiseInfoViewModel franchiseInfoViewModel = new FranchiseInfoViewModel();
franchiseInfoViewModel.MapFranchiseInfoToFranchiseInfoViewModel();
string json = JsonConvert.SerializeObject(franchiseInfoViewModel);
// this is how I do it with the default Json serializer
// return Json(franchiseInfoViewModel, JsonRequestBehavior.AllowGet);
}
誰かが私のコントローラの実施例を投稿することができます場合、私は非常にgratefullだろう。ありがとうございました!
はありがとうございました。私はJsonNetResultを実装すべきであることを知らなかった。それは今働く。 – Mdb