首页 > 解决方案 > c#不能隐式转换类型

问题描述

我想返回referencesModel 对象,但我收到关于对象类型的错误。还有另一种方法可以做到这一点吗?

public ActionResult Edit(string index)
{
    var selectedReference = template.References.First(reference => reference.SortOrder == index);
    ReferencesModel referencesModel = selectedReference;
    return PartialView(referencesModel);
}

错误:(
局部变量)Data.Reference selectedReference
无法将类型“OrderTemplateTool.Data.Reference”隐式转换为“OrderTemplateTool.Web.Models.References.RederencesModel”

模型:

public class ReferencesModel
{
    public int id { get; set; }
    public string Link { get; set; }
    public string Text { get; set; }
    public string Type { get; set; }
    public string Regimens { get; set; }
    public Guid GuidlineId { get; set; }
    public int SortOrder { get; set; }
}

标签: c#asp.net-mvc

解决方案


您可以将一些构造函数添加到您的 ReferenceModel 类。

public class ReferencesModel
{
    public ReferencesModel()
    {

    }

    public ReferencesModel(Reference reference)
    {
        this.Id = reference.Id;
        this.Link = reference.Link;
        this.Text = reference.Text;
        this.Type = reference.Type;
        this.Regimens = reference.Regimens;
        this.GuidlineId = reference.GuidlineId;
        this.SortOrder = reference.SortOrder;
    }


    public int Id { get; set; }
    public string Link { get; set; }
    public string Text { get; set; }
    public string Type { get; set; }
    public string Regimens { get; set; }
    public Guid GuidlineId { get; set; }
    public int SortOrder { get; set; }
}

并像这样使用它

    public ActionResult Edit(string index)
    {
        var selectedReference = template.References.First(reference => reference.SortOrder == index);
        ReferencesModel referencesModel = new ReferencesModel(selectedReference);
        return PartialView(referencesModel );
    }

推荐阅读