agc*_*c93 13 c# collections asp.net-mvc razor iis-express
编辑:我已经检查并尝试了很多SE上发现的其他Assembly Not Referenced问题,但是我没有找到很多处理应该是内置程序集(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'.
Run Code Online (Sandbox Code Playgroud)
这是Razor视图:
@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>
Run Code Online (Sandbox Code Playgroud)
这是Data类的定义:
public class Data
{
public string Key { get; set; }
public string Value { get; set; }
public string Source { get; set; }
public Status Status { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Status是枚举的地方.我已经在调试中检查了Model对象在传递给PartialView之前是否正确且格式正确,但是我得到了Server Error屏幕和500响应,而不是正确的布局.
在线 @foreach (Data metric in Model.Metrics)
完整性的操作代码:
public ActionResult ComponentDetail(string id)
{
var data = Client.GetComponentData(id.DecodeBase64ToString());
var partialViewResult = PartialView("_ComponentDetail", data);
return partialViewResult;
}
Run Code Online (Sandbox Code Playgroud)
agc*_*c93 39
我已经弄清楚了,它非常简单.我仍然不知道为什么这是必要的,但添加新assembly
标签web.config
似乎已经解决了这个问题.我添加的<compilation>
标签位于标签下,如下所示:
<assemblies>
<add assembly="System.Collections, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</assemblies>
Run Code Online (Sandbox Code Playgroud)
很简单,但已解决错误,现在视图正确呈现.