我正在用剃刀MVC填充DropDownListFor
。我正在尝试从Navigational属性填充它,但是它不起作用。
错误:
找不到类型或名称空间名称“模型”(您是否缺少using指令或程序集引用?)**
<div class="form-group">
@Html.LabelFor(model => model.InspectionReport.InspectionPhase, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-3">
@Html.DropDownListFor(model => model.InspectionReport.InitialsID, (IEnumerable<model.InspectionReport.Initials>) Model.InspectionReport.Initials,
"-Select-",
new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.InspectionReport.InspectionPhase, "", new { @class = "text-danger" })
</div>
</div>
InspectionReport.cs
namespace VAILCertificates.DAL.Entities
{
public class InspectionReport
{
//General Details
public int InspectionReportID { get; set; }
public short? InitialsID { get; set; }
public virtual Initials Initials { get; set; }
}
}
Initials.cs
public class Initials
{
public short? InitialsID { get; set; }
public string Code { get; set; }
}
答案 0 :(得分:0)
(IEnumerable<model.InspectionReport.Initials>) Model.InspectionReport.Initials
很遗憾,您不能像这样推断通用参数类型-您需要在此处提供固定类型或接口,而不是使用model.something
。使用泛型时,您的类型必须在编译时可由编译器解析,因此您不能在其中使用任何动态代码,既不能使用对象的属性,甚至不能使用typeof(something)
。
有关泛型类型规范的更多信息,请参见MSDN。
在您的特定情况下,您将想用类似这样的代码替换这段代码
(IEnumerable<Necessary.Namespaces.Initials>) Model.InspectionReport.Initials
,用Necessary.Namespaces
类所在的任何命名空间替换Initials
。