普通模型和IEnumerable模型在同一视图中

Ashiv3r

有一个小问题,我自己无法解决。我想在一个视图中使用相同的模型,但是一次使用IEnumerable <>,第二次不使用它。

我的看法:

@model IEnumerable<AMBIT_CMS_MVC.Areas.Admin.Models.Product>

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>DYSKRET - FOLIE OKIENNE</title>
    @Styles.Render("~/Content/Site.css")
    @Styles.Render("~/Content/bootstrap.css")
    @Scripts.Render("~/Scripts/jquery-1.10.2.min.js")
    @Scripts.Render("~/Scripts/bootstrap.js")
    @Scripts.Render("~/Scripts/buttons.js")
</head>
<body>
    <div class="container-fluid okienne">
        <div class="row">
            <div class="col-sm-2"></div>
            <div class="col-sm-8 menu">
                <a href="http://dyskret.pl/" target="_blank">
                    <img src="~/Images/logo.png" class="img-responsive fimg" />
                </a>
            </div>
            <div class="col-sm-2"></div>
        </div>
        <div class="row">
            <div class="col-sm-2"></div>
            <div class="col-sm-2 lista">
                <ul>
                    @foreach (var item in Model)
                    {
                        <li>@Html.ActionLink(item.Name, "Produkt", new { ProductID = item.ProductID })</li>
                    }
                </ul>
            </div>
            <div class="col-sm-6 details">
                @Html.DisplayFor(m => m.Name)
            </div>
            <div class="col-sm-2"></div>
        </div>
        <div class="row">
            <div class="col-sm-2"></div>
            <div class="col-sm-8 footerProducts">
                Text...
            </div>
            <div class="col-sm-2"></div>
        </div>
    </div>
</body>
</html>

问题是foreach循环可以完美地工作(我想列出该类别中的所有产品),但是当单击时,我还想在右侧显示它的详细信息,但是我不能,因为模型是IEnumerable <>并且应该简单型号(AMBIT_CMS_MVC.Areas.Admin.Models.Product)。就像我想将“索引”和“详细信息”视图合而为一。我该如何实现?

Ashiv3r

好的,所以我想出了答案:

将我的视图更改为:

@model AMBIT_CMS_MVC.Models.ProductViewModel

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>DYSKRET - FOLIE OKIENNE</title>
    @Styles.Render("~/Content/Site.css")
    @Styles.Render("~/Content/bootstrap.css")
    @Scripts.Render("~/Scripts/jquery-1.10.2.min.js")
    @Scripts.Render("~/Scripts/bootstrap.js")
    @Scripts.Render("~/Scripts/buttons.js")
</head>
<body>
    <div class="container-fluid okienne">
        <div class="row">
            <div class="col-sm-2"></div>
            <div class="col-sm-8 menu">
                <a href="http://dyskret.pl/" target="_blank">
                    <img src="~/Images/logo.png" class="img-responsive fimg" />
                </a>
            </div>
            <div class="col-sm-2"></div>
        </div>
        <div class="row">
            <div class="col-sm-2"></div>
            <div class="col-sm-2 lista">
                @Html.Partial("_Lista", Model.Products)
            </div>
            <div class="col-sm-6 details">
                @Html.Partial("_Produkt", Model.ProductDetails)
            </div>
            <div class="col-sm-2"></div>
        </div>
        <div class="row">
            <div class="col-sm-2"></div>
            <div class="col-sm-8 footerProducts">
                Text...
            </div>
            <div class="col-sm-2"></div>
        </div>
    </div>
</body>
</html>

_Lista部分:

@model IEnumerable<AMBIT_CMS_MVC.Areas.Admin.Models.Product>

<ul>
    @foreach (var item in Model)
    {
        <li>@Html.ActionLink(item.Name, "Produkt", new { ProductID = item.ProductID })</li>
    }
</ul>

_Produkt部分:

@model AMBIT_CMS_MVC.Areas.Admin.Models.Product

@Html.DisplayFor(m => m.Name)
@Html.DisplayFor(m => m.Description)

然后将一个类添加到我的模型中-ProductViewModel(添加到使用我的区域模型来与它们一起使用,因为该模型不在区域内):

using AMBIT_CMS_MVC.Areas.Admin.Models;
namespace AMBIT_CMS_MVC.Models
{
    public class ProductViewModel
    {
        public IEnumerable<Product> Products { get; set; }
        public Product ProductDetails { get; set; }
    }
}

最后将我的控制器更改为:

public ActionResult Produkt(int? ProductID)
        {
            string domain = Request.Url.Host;
            int clientid = (from a in db.Client where a.Domain == domain select a.ID).First();

            int categoryID = db.Category.Where(b => b.ClientID == clientid && b.Name == "Okienne").Select(b => b.ID).First();

            var ProductViewModel = new ProductViewModel();
            ProductViewModel.Products = db.Product.Where(c => c.ClientID == clientid && c.CategoryID == categoryID).ToList();
            ProductViewModel.ProductDetails = db.Product.SingleOrDefault(c => c.ClientID == clientid && c.CategoryID == categoryID && c.ProductID == ProductID);

            return View(ProductViewModel);

所以这就是我的方法。希望它将帮助下一代开发人员发生相同的错误并面临相同的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django:如何在同一视图中同时包含受限访问和模型?

来自分类Dev

同一视图中有多个模型?

来自分类Dev

同一视图中有多个模型?

来自分类Dev

使用IEnumerable在一个视图中使用多个模型

来自分类Dev

如何在同一视图中使用两个单独的模型

来自分类Dev

同一视图中的第二个模型未发布到控制器

来自分类Dev

无法在同一视图中使用具有关联的更新模型

来自分类Dev

如何在mvc4的同一视图中使用不同的模型?

来自分类Dev

为同一视图中同一表上的所有不同模型保存p:dataTable selectionMode =“ multiple”

来自分类Dev

无法在同一视图中为一个模型属性使用两个kendoui下拉列表

来自分类Dev

Rails协会-简单表单,在一个视图中具有单独的模型和表单

来自分类Dev

模型视图演示者-同一视图,不同的演示者

来自分类Dev

使用MVC在同一页面上的局部视图和模型绑定的多个实例

来自分类Dev

如何将数据从同一视图模型和同一可观察数组绑定到多个区域?

来自分类Dev

在Rails show视图中映射和链接模型实例

来自分类Dev

Django:在模型和视图中存储静态文本

来自分类Dev

在视图中显示与模型关联的名称和值

来自分类Dev

在Rails show视图中映射和链接模型实例

来自分类Dev

部分视图中的不同模型

来自分类Dev

Django:在视图中操作模型

来自分类Dev

在多个视图中编辑模型

来自分类Dev

如何在同一模型的同一Django视图中保存多个表单?当前,最后一个表格覆盖了保存

来自分类Dev

从视图中的模型仅打印一次

来自分类Dev

在一个视图中显示两个模型?

来自分类Dev

一个视图中的两个模型方向

来自分类Dev

如何强制多个视图显示同一模型行

来自分类Dev

将部分视图模型发布到同一MVC页面

来自分类Dev

如何同步共享同一模型的多个视图

来自分类Dev

如何从Mvc剃刀视图中的IEnumerable <model>返回带有索引的模型?

Related 相关文章

  1. 1

    Django:如何在同一视图中同时包含受限访问和模型?

  2. 2

    同一视图中有多个模型?

  3. 3

    同一视图中有多个模型?

  4. 4

    使用IEnumerable在一个视图中使用多个模型

  5. 5

    如何在同一视图中使用两个单独的模型

  6. 6

    同一视图中的第二个模型未发布到控制器

  7. 7

    无法在同一视图中使用具有关联的更新模型

  8. 8

    如何在mvc4的同一视图中使用不同的模型?

  9. 9

    为同一视图中同一表上的所有不同模型保存p:dataTable selectionMode =“ multiple”

  10. 10

    无法在同一视图中为一个模型属性使用两个kendoui下拉列表

  11. 11

    Rails协会-简单表单,在一个视图中具有单独的模型和表单

  12. 12

    模型视图演示者-同一视图,不同的演示者

  13. 13

    使用MVC在同一页面上的局部视图和模型绑定的多个实例

  14. 14

    如何将数据从同一视图模型和同一可观察数组绑定到多个区域?

  15. 15

    在Rails show视图中映射和链接模型实例

  16. 16

    Django:在模型和视图中存储静态文本

  17. 17

    在视图中显示与模型关联的名称和值

  18. 18

    在Rails show视图中映射和链接模型实例

  19. 19

    部分视图中的不同模型

  20. 20

    Django:在视图中操作模型

  21. 21

    在多个视图中编辑模型

  22. 22

    如何在同一模型的同一Django视图中保存多个表单?当前,最后一个表格覆盖了保存

  23. 23

    从视图中的模型仅打印一次

  24. 24

    在一个视图中显示两个模型?

  25. 25

    一个视图中的两个模型方向

  26. 26

    如何强制多个视图显示同一模型行

  27. 27

    将部分视图模型发布到同一MVC页面

  28. 28

    如何同步共享同一模型的多个视图

  29. 29

    如何从Mvc剃刀视图中的IEnumerable <model>返回带有索引的模型?

热门标签

归档