每个的System.Data.Entity.DynamicProxies

时间:2019-03-05 14:53:34

标签: javascript model-view-controller foreach

我试图遍历数据库中存在的每个“类别”,并将其放入下拉列表中,但是却给了我很长的代码,以这个开头:

System.Data.Entity.DynamicProxies

我不确定为什么吗?以及如何解决。起初,我认为这是由于我没有在同一模型中使用“类别”,但是当我在同一模型中加入“分类”时,似乎并没有真正改变。

因此,我尝试在Internet上进行搜索,但是似乎找不到与我所遇到的问题类似的东西。

所以我想知道,是什么原因导致的,在这种情况下可以使用哪种解决方案?

我试图做的是: 将类别从数据库中循环到下拉菜单中,以便显示所有类别,而无需在html _layout文件中键入它们。

Example of the problem

这里是我的代码:

function dropFunction() {
    document.getElementById("inDrop").classList.toggle("show");
}

window.onclick = function (event) {
    if (!event.target.matches('.dropBtn')) {
        var dropdowns = document.getElementsByClassName("dropCon");
        var i;
        for (i = 0; i < dropdowns.length; i++) {
            var openDropdown = dropdowns[i];
            if (openDropdown.classList.contains('show')) {
                openDropdown.classList.remove('show');
            }
        }
    }
}
@model Fisk.Models.ALL



<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title</title>
    <link href="~/Content/css/Common.min.css" rel="stylesheet" />
    <link href="~/Content/css/bootstrap.min.css" rel="stylesheet" />
    <script src="~/Scripts/modernizr-2.6.2.js"></script>
</head>
<body>

    <div class="container-fluid">
        <div class="row">
            <div class="col-lg-8">
                <h2>Fisk.nu</h2>
            </div>
            <div class="col-lg-4">
                <form action="/" method="post">
                    <input type="text" name="name" value="" class="col-md-8" />
                    <input type="button" name="name" value="Søg" class="col-md-3" />
                </form>
            </div>
        </div>

        <ul id="navMenu">
            <li><a href="~/Views/Home/Index.cshtml">Forsiden</a></li>
            <li class="dropdown">
                <button onclick="dropFunction()" class="dropBtn">Produkter</button>
                <ul id="inDrop" class="dropCon">
                    @foreach (var item in Model.Kategorier)
                    {
                        <li class="dropList"><a href="">@item</a></li>
                    }
                </ul>
            </li>
        </ul>


        @RenderBody()
        <footer>
            <p>Fisk.nu, Silovej 2, DK-8000 Århus C, Tlf. +45 87 11 12 13, info@fisk.nu</p>
        </footer>
    </div>


    <script src="~/Content/js/bootstrap.min.js"></script>
    <script src="~/Content/js/jquery-3.3.1.min.js"></script>
    <script src="~/Content/js/Slider.js"></script>
    <script src="~/Content/js/Dropdown.js"></script>
</body>
</html>

Heres the Home Controller: 

public ActionResult Index()
{

    var ViewModel = new Fisk.Models.ALL();

    ViewModel.tekstBoks = db.front_TekstBoks.ToList();
    ViewModel.Slider = db.front_Slider.ToList();
    ViewModel.Kontakt = db.web_Kontakt.FirstOrDefault();
    ViewModel.Kategorier = db.site_Kategorier.ToList();

    List<front_Slider> sliders = new List<front_Slider>();
    List<front_TekstBoks> tekstBoks = new List<front_TekstBoks>();
    List<site_Kategorier> kategorier = new List<site_Kategorier>();

    return View(ViewModel);
}

1 个答案:

答案 0 :(得分:1)

您必须访问集合Kategorier-> Kategori中实体的属性,例如@ item.Name或其他内容,否则,您只是在打印ToString()的结果

<ul id="inDrop" class="dropCon">
                @foreach (var item in Model.Kategorier)
                {
                    <li class="dropList"><a href="">@item.Name</a></li>
                }
</ul>