MVC ToString instead of Template

本文关键字:Template of instead ToString MVC | 更新日期: 2023-09-27 18:26:07

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

我没有得到我提供的模板,而是得到了"Class"(模型中的一个proerties)的toString

我到处找都找不到任何帮助。

任何帮助都将不胜感激!

我得到的是:

Levels这是类该死的ToString

我有以下内容:

ClassSpellLevelPair.chtml(试图将其放入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; }
}

edit:为ClassSpellLevelPair.chtml 添加了文件夹数据

MVC ToString instead of Template

发现"EditorTemplates"文件夹实际上是"Shared''EditorTemplates"

显而易见,谷歌搜索总共花了6个小时。