MVC ToString而不是Template

时间:2014-10-08 20:05:53

标签: c# asp.net asp.net-mvc razor

我正在尝试使用EF获取MVC 5中对象列表的模板。

我没有获得我提供的模板,而是获得了“Class”的toString(模型中的一个优势)

我到处看了一眼,没有找到任何帮助我。

任何帮助将不胜感激!

我得到的是:

  

级别这是该类的该死的ToString

我有以下内容:

ClassSpellLevelPair.cshtml(尝试将其放在Shared,EditorTemplates和Create.cshtml文件夹中):

@model Analyzer.Models.ClassSpellLevelPair
<div>
    @Html.HiddenFor(m => m.Id)
    @Html.LabelFor(model => model.Class.Name)
    @Html.ValueFor(model => model.SpellLevel)
</div>    

在create.cshtml中:

<div class="form-group">
    @Html.LabelFor(m => m.Levels, new { @class = "control-label col-md-3" })
    <div class="col-md-9">
        @Html.EditorFor(m => m.Levels, "ClassSpellLevelPair")
    </div>
 <div>

模型是:

public class Spell : Entity
{
    ...
    [Display(Name = "Levels")]
    public virtual ICollection<ClassSpellLevelPair> Levels { get; set; }
    ...
}

public class ClassSpellLevelPair : Entity
{
    public ClassSpellLevelPair()
    {

    }

    public ClassSpellLevelPair(Class c, int? l = null)
    {
        Class = c;
        SpellLevel = l;
    }

    public Class Class { get; set; }

    public int? SpellLevel { get; set; }
}

public class Entity
{
    public Entity()
    {
        Id = Guid.NewGuid();
    }

    [Key]
    public Guid Id { get; set; }
}

编辑:为ClassSpellLevelPair.cshtml添加了文件夹数据

1 个答案:

答案 0 :(得分:1)

发现&#34; EditorTemplates&#34;文件夹实际上是&#34;共享\编辑模板&#34;

如此明显,整整花了6个小时谷歌。