简体   繁体   English

从控制器到ASP.NET MVC 4中的视图的JSON传输

[英]JSON transmission from the controller to the view in ASP.NET MVC 4

Sorry for my bad English. 对不起,我的英语不好。 I have a problem. 我有个问题。 When I pass JSON data from view, I get an error: "Illegal characters in path." 当我从视图传递JSON数据时,出现错误:“路径中包含非法字符”。 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: 那是我的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? 怎么了?

You need to return JsonResult 您需要返回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' 如果需要允许'GET',则需要设置, JsonRequestBehavior = JsonRequestBehavior.AllowGet

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM