一些疑问涉及到如何在使用Jquery的.net视图中处理模型对象

本文关键字:net Jquery 视图 对象 模型 处理 | 更新日期: 2023-09-27 18:08:52

我是c# ' . net的新手,我有以下疑问:

我正在制作一个web应用程序的Jquery页面:

@model MyUsers.Models.SearchGroups
@{
    ViewBag.Title = "Index";
    Layout = "~/Areas/Admin/Views/Shared/MasterPageAdminMobile.cshtml";
    WebGrid wGrid = new WebGrid(null, rowsPerPage: Model.PageSize, defaultSort: "NOME", canPage: false);
    wGrid.Bind(Model.Gruppi, rowCount: Model.TotalRows, autoSortAndPage: false);
}
<h2>Gruppi</h2>
<a href="@Url.Action("Create", "Groups")"  data-icon="plus"  data-inline="true" data-mini="true"  data-role="button"  >Crea un nuovo gruppo</a>
@if (Model.TotalRows == 0)
{
    <h3>Non è stato trovato nessun gruppo. Modificare i filtri di ricerca.</h3>
}
else
{
    <div style="margin-top: 20px;">
        @wGrid.GetHtml(
            fillEmptyRows: false,
            tableStyle: "MyTable ui-responsive",
            headerStyle: "ui-bar-c",
            footerStyle: "ui-bar-b",
            rowStyle: "ui-bar-a",
            alternatingRowStyle: "ui-bar-b",
            htmlAttributes: new { data_role = "table", id = "MyWebGrid", data_mode = "reflow" },
            columns: new[]{
                wGrid.Column ("Nome","", canSort  : true),
                wGrid.Column ("countUsers","Numero utenti", canSort  : false ),
                 wGrid.Column ("countRoles","Numero ruoli", canSort  : false ),
                wGrid.Column ("", header :"Actions",  format:@<text>
        <a class="ui-btn-inline ui-btn ui-icon-info ui-btn-icon-notext ui-corner-all"   href="@Url.Action("Details", "Groups", new { id = item.gruppoId })">Info</a>
        <a class="ui-btn-inline ui-btn ui-icon-delete ui-btn-icon-notext ui-corner-all" href="@Url.Action("Delete", "Groups", new { id = item.gruppoId })">Delete</a>
        </text>, canSort : false)
                }
            )
        @{Html.RenderPartial("Paging", Model);}
    </div>
}

本页显示一个包含一些行的表。

我的疑问是:

1)在我看来,这些行的内容是从模型的元素中获取的。Gruppi 收藏。如果我想创建另一个表包含存储在列表对象中的信息我只需声明如下内容

wGrid.Bind(Model.MyCollection, rowCount: Model.TotalRows, autoSortAndPage: false);

这是真的还是我错过了什么?

在我看来,模型对象是用 声明的。
@model MyUsers.Models.SearchGroups

但是为什么当它访问一个对象字段时,它使用模型来引用它,它是模型对象的标准名称吗?

一些疑问涉及到如何在使用Jquery的.net视图中处理模型对象

1)是的,您的假设是正确的,即网格绑定到模型上的Gruppi集合中的项目,即MyUsers.Models.SearchGroups.Gruppi。这在视图中被引用为Model.Gruppi

如果你想在视图中创建另一个网格,你可以单独使用WebGrid构造函数,也可以使用上面代码中列出的构造函数和Bind方法的组合。对Bind的调用提供了传入对网格行进行分页所需的其他数据的能力。构造函数和Bind方法中都有许多可用的参数。下面提供了可用选项的全面概述:

在ASP中充分利用WebGrid净MVC

2)视图顶部的model指令

@model MyUsers.Models.SearchGroups  

表示这是绑定到类型为MyUsers.Models.SearchGroups的模型的强类型视图。ASP。Net Mvc强类型视图使用Model来引用绑定到视图的模型实例。因此,在您的视图中,Model.Gruppi指的是模型上的Gruppi属性。