Передача Json на просмотр в c # mvc - PullRequest
0 голосов
/ 28 февраля 2019

Я отображаю данные из таблицы, используя нокаут JS.Но есть показание "Элемент модели, переданный в словарь, имеет тип 'System.Web.Mvc.JsonResult', но для этого словаря требуется элемент модели типа 'System.Collections.Generic.IEnumerable`1 [KnockOutDemo.Models.State] «.ошибка.

Вот мой js-код в виде KOIndex.js

$(function () {
    ko.applyBindings(modelView);
    modelView.viewStates();
});

var modelView = {
    States = ko.observableArray([]),
    viewStates: function () {
        var thisobj = this;
        try {
            $.ajax({
                url: '/State/Index',
                type: 'GET',
                dataType: 'json',
                contentType: 'application/json',
                success: function (data) {
                    thisObj.States(data);
                },  
                error: function (err) {
                    alert(err.status + " : " + err.statusText);
                }
            });
        }
        catch (e) {
            window.location.href = '/State/Index';
        }
    }
};

Файл контроллера

public class StateController : Controller
{
    private Database1Entities db = new Database1Entities();

    // GET: State
    public ActionResult Index()
    {
        return View(Json(db.States.ToList(), JsonRequestBehavior.AllowGet));

    }
}

Index.cshtml

@model IEnumerable<KnockOutDemo.Models.State>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
    <th>
        State Name
    </th>
    <th>Action</th>
</tr>

<tbody data-bind="foreach : States">
    <tr>
        <td data-bind="text : StateName"></td>
        <td>
            <a data-bind="attr : { 'href' : '@Url.Action("Edit", "State")/' + StateID }" class="btn-link">Edit</a>
            <a data-bind="attr: { 'href': '@Url.Action("Delete", "Home")/' + StateID }" class="btn-link">Delete</a>
        </td>
    </tr>
</tbody>
</table>

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/Knockout/K?OIndex.js"></script>
<script src="~/Scripts/knockout-3.5.0.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...