Reputation: 1084
Sorry for my bad English. I have a problem. When I pass JSON data from view, I get an error: "Illegal characters in path." That my controller:
public class HomeController : Controller
{
private WeaponContext _db = new WeaponContext();
public ActionResult Index()
{
var allWeapons = _db.Weapons.ToList<Weapon>();
var allWeaponsJSON = JsonConvert.SerializeObject(allWeapons);
return View(allWeaponsJSON);
}
}
and that my index.html:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using TestingApp.Models
@model IEnumerable<Weapon>
<h3>Weapons</h3>
<table class="center">
<tr><td><p><h3>Name of weapon</h3></p></td><td><p><h3>Created</h3></p></td><td><p><h3>Description</h3></p></td></tr>
<tbody data-bind="foreach: model.Weapon"></tbody>
<tr><td><span data-bind="text: Title"></span></td><td><span data-bind="text: Created"></span></td><td><span data-bind="text: Description"></span></td></tr>
</table>
<script type="text/javascript" src='@Url.Content("~/Scripts/knockout-2.3.0.js")'>
$(document).ready(function () {
var viewWeapons = {};
$.getJSON("/index", function (data) {
viewWeapons = ko.mapping.fromJSON(data);
});
});
ko.applyBindings(viewWeapons);
</script>
@section Footer {
Все права защищены. Vlad Corp. 2013.
}
What's wrong?
Upvotes: 0
Views: 911
Reputation: 133433
You need to return JsonResult
public JsonResult Index()
{
var allWeapons = _db.Weapons.ToList<Weapon>();
return Json(allWeapons, JsonRequestBehavior = JsonRequestBehavior.AllowGet );
}
You need to set , JsonRequestBehavior = JsonRequestBehavior.AllowGet
, if you want allow 'GET'
Upvotes: 1