Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架代码未为FK字段生成下拉列表(&R)_C#_Asp.net Mvc 3_Razor_Entity Framework 4.1 - Fatal编程技术网

C# 实体框架代码未为FK字段生成下拉列表(&R)

C# 实体框架代码未为FK字段生成下拉列表(&R),c#,asp.net-mvc-3,razor,entity-framework-4.1,C#,Asp.net Mvc 3,Razor,Entity Framework 4.1,我首先使用ASP.NET MVC3以及Razor和实体框架代码来创建一个新的非常小的应用程序。从我所阅读和看到的一切来看,当类和数据之间存在FK关系时,Razor应该生成一个下拉选择输入字段。但是,当下面的代码运行时,我会得到一个用于PartnerTypeId和partnerSubjectID的文本框。不知道我的故障在哪里 班级 看法 从我所读到和看到的一切来看,当有FK关系时 在类和数据之间,Razor应该生成一个下拉选择 输入字段 我不知道你在哪里看到或读到这样的东西。下面是ASP.NET

我首先使用ASP.NET MVC3以及Razor和实体框架代码来创建一个新的非常小的应用程序。从我所阅读和看到的一切来看,当类和数据之间存在FK关系时,Razor应该生成一个下拉选择输入字段。但是,当下面的代码运行时,我会得到一个用于PartnerTypeId和partnerSubjectID的文本框。不知道我的故障在哪里

班级 看法 从我所读到和看到的一切来看,当有FK关系时 在类和数据之间,Razor应该生成一个下拉选择 输入字段

我不知道你在哪里看到或读到这样的东西。下面是ASP.NET MVC中的示例。正如您所看到的,除了一个可为null的布尔属性之外,它们都不会生成任何元素


Razor对FK关系的含义一无所知。它不知道数据库是什么意思。Razor是一个模板视图引擎,它与模型一起工作,并且支持标准编辑器和显示模板(请参阅我链接的文章),这些模板取决于装饰模型属性的元数据和属性类型。如果您对默认模板所提供的内容不满意,当然可以编写自定义模板。例如,您可以编写一个编辑器模板来生成下拉列表。当然,为了生成下拉列表,请不要忘记,您需要两件事:一是将选定值绑定到的标量属性,二是某个复杂类型的集合属性,其中每个元素至少包含两个属性,表示将用于绑定下拉列表选项的值和文本。

您至少可以在否决时留下评论,或者更好地回答提供反事实的问题。
public class Partner
{
    public int Id { get; set; }

    [Required]
    [MinLength(5)]
    [MaxLength(300)]
    public String Name { get; set; }

    [Required]
    public int PartnerTypeId { get; set; }
    public PartnerType PartnerType { get; set; }

    public int PartnerSubTypeId { get; set; }
    public PartnerSubType PartnerSubType { get; set; }

}

public class PartnerType
{
    public int Id { get; set; }

    [Required]
    [MaxLength(40)]
    public String Name { get; set; }

    [Required]
    public bool IsActive { get; set; }

    public virtual ICollection<Partner> Partners { get; set; }
}
<fieldset>
        <legend>Partner</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Name)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name)
            @Html.ValidationMessageFor(model => model.Name)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.PartnerTypeId)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.PartnerTypeId)
            @Html.ValidationMessageFor(model => model.PartnerTypeId)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.PartnerSubTypeId)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.PartnerSubTypeId)
            @Html.ValidationMessageFor(model => model.PartnerSubTypeId)
        </div>
</fieldset>