C# MVC在强类型视图中创建基础设施网格

C# MVC在强类型视图中创建基础设施网格,c#,asp.net-mvc,entity-framework,infragistics,strongly-typed-view,C#,Asp.net Mvc,Entity Framework,Infragistics,Strongly Typed View,我有一个视图(ViewLeads),它只有一个Infrastics网格已经在工作,并且可以很好地提取数据。我有另一个视图(UpdateLead),其中有几个文本框,当您单击特定用户时,这些文本框会显示网格中的数据 我想做的是将infragistics网格添加到这个新视图(UpdateLead)。我遇到的问题是,在我的第一个视图(ViewLead)中,我的模型引用是 @model IQueryable<LeadManagement.BusinessEntities.BusinessLead&

我有一个视图(ViewLeads),它只有一个Infrastics网格已经在工作,并且可以很好地提取数据。我有另一个视图(UpdateLead),其中有几个文本框,当您单击特定用户时,这些文本框会显示网格中的数据

我想做的是将infragistics网格添加到这个新视图(UpdateLead)。我遇到的问题是,在我的第一个视图(ViewLead)中,我的模型引用是

@model IQueryable<LeadManagement.BusinessEntities.BusinessLead>
因此,当我试图将网格代码复制到此视图时,它会抱怨

.Grid(Model)
部分,表示它有无效参数,反之亦然,如果我将模型引用更改为Iqueryable引用,文本框会抱怨


我怎样才能在同一页上同时显示这两个内容(文本框和网格)????我尝试引用这两种模型类型,但都不起作用。这件事我已经坚持了好几天了。提前谢谢

如果您没有提到,可能会出现这样的问题:

@using Infragistics.Web.Mvc
您的模型如下面的示例所示

@using IgniteUI.SamplesBrowser.Models

    @model IQueryable<IgniteUI.SamplesBrowser.Models.Northwind.Product>
<!DOCTYPE html>

<html>
<head>
    <title></title>

    <!-- Ignite UI Required Combined CSS Files -->
    <link href="http://cdn-na.infragistics.com/igniteui/2016.2/latest/css/themes/infragistics/infragistics.theme.css" rel="stylesheet" />
    <link href="http://cdn-na.infragistics.com/igniteui/2016.2/latest/css/structure/infragistics.css" rel="stylesheet" />

    <script src="http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.8.3.js"></script>
    <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="http://code.jquery.com/ui/1.11.1/jquery-ui.min.js"></script>

    <!-- Ignite UI Required Combined JavaScript Files -->
    <script src="http://cdn-na.infragistics.com/igniteui/2016.2/latest/js/infragistics.core.js"></script>
    <script src="http://cdn-na.infragistics.com/igniteui/2016.2/latest/js/infragistics.lob.js"></script>

</head>

<body>
        @(Html.Infragistics()
            .Grid(Model)
            .ID("grid")
            .Width("100%")
            .Height("500px")
            .PrimaryKey("ID")
            .AutoGenerateColumns(false)
            .AutoGenerateLayouts(false)
            .Columns(column =>
            {
                column.For(x => x.ProductName).HeaderText("Product Name").Width("30%");
                column.For(x => x.CategoryName).HeaderText("Category").Width("30%");
                column.For(x => x.UnitPrice).HeaderText("Unit Price").Width("20%");
                column.For(x => x.UnitsInStock).HeaderText("Units In Stock").Width("20%");
            })
            .Features(features =>
            {
                features.Sorting().Type(OpType.Remote);
                features.Paging().Type(OpType.Remote);
                features.Filtering().Type(OpType.Remote);
                features.Responsive().ColumnSettings(cs =>
                {
                    cs.ColumnSetting().ColumnKey("CategoryName").Classes("ui-hidden-phone");
                    cs.ColumnSetting().ColumnKey("UnitPrice").Classes("ui-hidden-phone ui-hidden-tablet");
                });
            })
            .DataSourceUrl(Url.Action("GetProducts"))
            .Render()
        )
    </body>
    </html>
@使用IgniteUI.SampleBrowser.Models
@模型IQueryable
@(Html.Infragistics()
.网格(模型)
.ID(“网格”)
.宽度(“100%”)
.高度(“500px”)
.PrimaryKey(“ID”)
.AutoGenerateColumns(错误)
.AutoGenerateLayouts(错误)
.列(列=>
{
列.For(x=>x.ProductName).HeaderText(“产品名称”).Width(“30%”);
(x=>x.CategoryName.HeaderText(“类别”).Width(“30%”)的列;
列。对于(x=>x.单价)。标题文本(“单价”)。宽度(“20%”;
列。对于(x=>x.UnitsInStock)。标题文本(“库存单位”)。宽度(“20%”;
})
.功能(功能=>
{
features.Sorting().Type(OpType.Remote);
features.Paging().Type(OpType.Remote);
features.Filtering().Type(OpType.Remote);
features.Responsive().ColumnSettings(cs=>
{
cs.ColumnSetting().ColumnKey(“CategoryName”).class(“ui隐藏电话”);
cs.ColumnSetting();
});
})
.DataSourceUrl(Url.Action(“GetProducts”))
.Render()
)

您需要将一个
IEnumerable
传递给
.Grid
参数-您应该能够使用
新列表{Model.BusinessLead}
(即一个包含1个项目的新列表,该项目是潜在客户)-我假设您只想在更新页面的网格中显示一行?但通常情况下,我倾向于使用
视图模型
备份
视图
,而不仅仅是直接使用有问题的业务模型类型-例如,我需要一个
EditBusinessLeadViewModel
,其属性类型为
BusinessLead
等,并在视图中使用它-这样,您可以将行为放在模型旁边谢谢你的回复。最终,更新页面上的新网格将显示所选特定用户的“注释”。但现在是的,我只是想让它基本上显示选定用户的一行。所以你说的不是.Grid(Model),而是.Grid(new List)?是的,但这取决于这是否有意义-听起来你有两个视图,一个是带有对潜在客户执行操作的按钮的潜在客户列表,另一个是显示潜在客户详细信息并允许你编辑/更新的视图。在这个屏幕上,您似乎想要显示一个网格,其中只包含用户在上一页上选择的lead。如果是这样的话,您可以将单个潜在客户包装在一个集合类型中(支持
IEnumerable
的东西,如我建议的
List
),并将其传递给网格。它将只包含1个项目,但它将满足收集类型的网格需要是的,谢谢!!
@using Infragistics.Web.Mvc
@using IgniteUI.SamplesBrowser.Models

    @model IQueryable<IgniteUI.SamplesBrowser.Models.Northwind.Product>
<!DOCTYPE html>

<html>
<head>
    <title></title>

    <!-- Ignite UI Required Combined CSS Files -->
    <link href="http://cdn-na.infragistics.com/igniteui/2016.2/latest/css/themes/infragistics/infragistics.theme.css" rel="stylesheet" />
    <link href="http://cdn-na.infragistics.com/igniteui/2016.2/latest/css/structure/infragistics.css" rel="stylesheet" />

    <script src="http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.8.3.js"></script>
    <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="http://code.jquery.com/ui/1.11.1/jquery-ui.min.js"></script>

    <!-- Ignite UI Required Combined JavaScript Files -->
    <script src="http://cdn-na.infragistics.com/igniteui/2016.2/latest/js/infragistics.core.js"></script>
    <script src="http://cdn-na.infragistics.com/igniteui/2016.2/latest/js/infragistics.lob.js"></script>

</head>

<body>
        @(Html.Infragistics()
            .Grid(Model)
            .ID("grid")
            .Width("100%")
            .Height("500px")
            .PrimaryKey("ID")
            .AutoGenerateColumns(false)
            .AutoGenerateLayouts(false)
            .Columns(column =>
            {
                column.For(x => x.ProductName).HeaderText("Product Name").Width("30%");
                column.For(x => x.CategoryName).HeaderText("Category").Width("30%");
                column.For(x => x.UnitPrice).HeaderText("Unit Price").Width("20%");
                column.For(x => x.UnitsInStock).HeaderText("Units In Stock").Width("20%");
            })
            .Features(features =>
            {
                features.Sorting().Type(OpType.Remote);
                features.Paging().Type(OpType.Remote);
                features.Filtering().Type(OpType.Remote);
                features.Responsive().ColumnSettings(cs =>
                {
                    cs.ColumnSetting().ColumnKey("CategoryName").Classes("ui-hidden-phone");
                    cs.ColumnSetting().ColumnKey("UnitPrice").Classes("ui-hidden-phone ui-hidden-tablet");
                });
            })
            .DataSourceUrl(Url.Action("GetProducts"))
            .Render()
        )
    </body>
    </html>