微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 在Razor视图中foreach循环中的汇编未引用编译错误

编辑:我已经检查并尝试了很多其他在SE上找不到的Assembly NotReferenced问题,但是我还没有发现很多处理内置程序集(System.Collections.Generic.List< t>)的内容.这使得很难手动添加删除引用等

我正在尝试从API响应中构建一个PartialView.我已经确认响应是正确和良好的形式,我的对象正在正确构建,但是当我生成部分视图时,编译错误显示.

Compiler Error Message: CS0012: The type 'System.Collections.Generic.List`1<T0>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Collections,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a'.

这是剃须刀视图:

@using OpsComponent
@model OpsComponent.ComponentData

<div class="row">
    <div class="col-md-6">
        <ul class="list-group">
            @foreach (Data metric in Model.Metrics)
            {
                <li class="list-group-item">
                    <span class="badge">@metric.Value</span>
                    @metric.Key<br/>
                </li>
            }

        </ul>
    </div>
</div>

这里是Data类的定义:

public class Data
    {
        public string Key { get; set; }
        public string Value { get; set; }
        public string Source { get; set; }
        public Status Status { get; set; }

    }

状态是枚举.我已经在调试中检查了Model对象在传递给PartialView之前是否正确且格式正确,但是没有正确的布局,所以我得到了Server Error屏幕和500个响应.

在@foreach(Model.Metrics中的数据度量)

完整性的行动代码

public ActionResult ComponentDetail(string id)
        {
            var data = Client.GetComponentData(id.DecodeBase64ToString());
            var partialViewResult = PartialView("_ComponentDetail",data);
            return partialViewResult;
        }

解决方法

我已经弄清楚了,它是非常简单的.我仍然不知道为什么这是必要的,但是添加一个新的汇编标签到web.config似乎已经解决了这个问题.我添加标签位于< compilation>标签和如下:
<assemblies>
    <add assembly="System.Collections,PublicKeyToken=b03f5f7f11d50a3a" />
</assemblies>

简单,但解决错误,现在呈现正确的视图.

原文地址:https://www.jb51.cc/csharp/96989.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐