I am trying to convert my mvc model to knockout viewmodel here:
Model
public class MyModel
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
.
.
.
public List<MyList1> MyListOne{ get; set; }
public List<MyList2> MyListTwo{ get; set; }
}
Controller
public ActionResult Index()
{
MyModel myModel;
var myServiceObject = myServiceManager.GetMyModelByUser(user);
myModel = new MyModel
{
Id = myServiceObject.Id,
.
.
.
.
};
return View(myModel);
}
View Model
var DynamicModelLoading = function (data) {
var self = this;
ko.mapping.fromJS(data, {}, self);
};
Helper
public static string ToJson(this object obj)
{
JsonSerializerSettings serializerSettings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
return JsonConvert.SerializeObject(obj, Formatting.None, serializerSettings);
}
View
<script src="~/Scripts/jquery-2.1.1.min.js"></script>
<script src="~/Scripts/knockout-3.2.0.js"></script>
<script src="~/Scripts/knockout.mapping-latest.js"></script>
<script type="text/javascript">
var viewModel;
$(function () {
var viewModel = new DynamicModelLoading(@Html.Raw(Model.ToJson()));
ko.applyBindings(viewModel);
});
</script>
<div class="f_name" data-bind="text: firstName"></div>
<div class="f_name" data-bind="text: lastName"></div>
ToJson() returns data. But while binding it I am not getting any error and no data either. I am missing something here but not sure what it is.
Aucun commentaire:
Enregistrer un commentaire