Я пытаюсь создать простой проект по управлению ролями пользователей, используя asp.net mvc3 Entity Framework 4 (первая модель) и использую jqgrid для отображения данных.
, но почему, если я изменяю отношения данных междуПользователь таблицы и роль в судне отношений «многие ко многим» не удалось загрузить данные jqgrid.
Ниже приведены данные моего проекта:
Данные проекта:
- VS 2010
- ASP.Net MVC 3
- Просмотр: Razor
- ORM: Linq To Entity
JQGrid Версия:jqGrid 3.8
Пакет проекта:
- EntityFramework "версия =" 4.1.10715.0
- jQuery "версия =" 1.5.1
- jQuery.UI.Combined "version =" 1.8.11
- jQuery.Validation "version =" 1.8.0
- jQuery.vsdoc "version =" 1.5.1 "
- Modernizr "version =" 1.7
- MvcScaffolding "version =" 1.0.6
- T4Scaffolding "version =" 1.0.5
Модель:
- СШАer
public partial class User
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string LoweredUserName { get; set; }
public string MobileAlias { get; set; }
public bool IsAnonymous { get; set; }
public System.DateTime LastActivityDate { get; set; }
public virtual ICollection<Role> Roles { get; set; }
}
- Роль
public partial class Role
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int RoleId { get; set; }
public string RoleName { get; set; }
public string LoweredRoleName { get; set; }
public string Description { get; set; }
public virtual ICollection<User> Users { get; set; }
}
Контроллер-пользователь:
public JsonResult GridData(int rows, int page)
{
var count = _context.Users.Count();
var pageData = _context.Users.OrderBy(x => x.UserId).Skip((page - 1) * rows).Take(rows);
return Json(new {
page = page,
records = count,
rows = pageData,
total = Math.Ceiling((decimal)count / rows)
}, JsonRequestBehavior.AllowGet);
}
View-Index.cshtml :
@model IEnumerable<CustomControler.Models.User>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<table id="ajaxGrid"></table>
<div id="ajaxGridPager"></div>
<script type="text/javascript">
jQuery("#ajaxGrid").jqGrid({
url: '@Url.Action("GridData")',
datatype: "json",
mtype: 'GET',
colNames: ['UserId', 'UserName', 'LoweredUserName', 'MobileAlias', 'IsAnonymous', 'LastActivityDate'],
colModel: [
{ name: 'UserId', index: 'UserId', editable: true, sortable: false, hidden: true },
{ name: 'UserName', index: 'UserName', editable: true, sortable: false, hidden: false },
{ name: 'LoweredUserName', index: 'LoweredUserName', editable: true, sortable: false, hidden: false },
{ name: 'MobileAlias', index: 'MobileAlias', editable: true, sortable: false, hidden: false },
{ name: 'IsAnonymous', index: 'IsAnonymous', editable: true, sortable: false, hidden: false },
{ name: 'LastActivityDate', index: 'LastActivityDate', editable: true, sortable: false, hidden: false }
],**
rowNum: 5,
pager: '#ajaxGridPager',
width: '850',
height: '15em'
});
//jsonReader: { repeatitems: false, id: "UserId" },
jQuery("#ajaxGrid").jqGrid('navGrid', '#ajaxGridPager',
{ search: false, refresh: false }, // General options
{ url: '@Url.Action("Edit")', closeAfterEdit: true }, // Edit options
{ url: '@Url.Action("Create")', closeAfterAdd: true }, // Add options
{ url: '@Url.Action("Delete")' } // Delete options
);
</script>
Главная страница
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.5.2.min.js")" type="text/javascript"></script>
<!-- To support jqGrid -->
<link href="@Url.Content("~/Content/themes/base/jquery.ui.all.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/ui.jqgrid.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/i18n/grid.locale-en.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.jqGrid.min.js")" type="text/javascript"></script>
</head>
Если я установлю комментарий к public virtual ICollection <Role> Roles {get; set;}
в моей User
модели, что означает, что я избавлюсь от корабля ролевых отношенийв таблицу, данные могут быть загружены в jqGrid.