J'essaie d'apprendre knockout.js sur asp.net mvc rasoir. J'ai codé sous le code pour apprendre et me tester Mais le côté View me jette une erreur js.Comment utiliser Knockout.js dans asp.net mvc Razor correctement et suffisamment?
Une erreur se produit sur "var model = @ Html.Raw (Json.Encode (Model));" Erreur: Microsoft JScript erreur d'exécution: « fromJSON » Impossible d'obtenir la valeur de la propriété: l'objet est
Contrôleurs vides ou non définis:
[HttpGet]
public ActionResult GetGift()
{
GiftModel gift = new GiftModel();
gift.Price = 120;
gift.Title = "Test";
return View(gift);
}
View:
@using System.Web.Script.Serialization;
@model knockout1.Models.GiftModel
@{
ViewBag.Title = "GetGift";
}
<h2>GetGift</h2>
<script src="/Scripts/knockout-2.1.0.js" type="text/javascript"></script>
<script type="text/javascript">
var initialData = @Html.Raw(new JavaScriptSerializer().Serialize(Model));
var viewModel = ko.mapping.fromJSON(initialData);
$(document).ready(function() { ko.applyBindings(viewModel); });
</script>
<p>Title: <strong data-bind="text: Title"></strong></p>
<p>Price: <strong data-bind="text: Price"></strong></p>
Mais j'ai changé mes codes js. L'erreur disparaît. Je ne peux pas comprendre la première utilisation pourquoi ne corrige pas? i readed la réponse de Darin Dimitrov:
<script type="text/javascript">
var jsonResultData = @Html.Raw(Json.Encode(Model));
</script>
Me: (il fonctionne bien.)
<script type="text/javascript">
$(function()
{
var model = @Html.Raw(Json.Encode(Model));
// Activates knockout.js
ko.applyBindings(model);
});
</script>
Pouvez-vous s'il vous plaît poster le message d'erreur exact? Afin d'utiliser le 'ko.mapping.fromJSON' vous devez faire référence au plugin ko mapping http://knockoutjs.com/documentation/plugins-mapping.html – nemesv
Erreur d'exécution Microsoft JScript: 'fromJSON' Impossible d'obtenir la valeur de la propriété: l'objet est vide ou non défini J'ai CHANGÉ sur mon Que. – programmerist
Ouais, maintenant basé sur le message d'erreur, il manque définitivement une référence de script au plugin de mapping. Vous pouvez télécharger ici: https://github.com/SteveSanderson/knockout.mapping/tree/master/build/output les versions min et debug. – nemesv