你错过了一个演员?

时间:2016-10-17 12:24:31

标签: .net razor asp.net-mvc-5

  

无法隐式转换类型' DoctorFront.Models.DocMaster'到' System.Collections.IEnumerable'。存在显式转换(您是否错过了演员?)

namespace DoctorFront.Controllers
{
    public class DoctorController : ApiController
    {
        static readonly IDocRepositories Repository  =new DocRepositories();
        public IEnumerable GetAllDoctor()
        {
            return Repository.GetAll();
        }

        public IEnumerable GetDoctor(int id) 
        {

            return Repository.Get(id);
        }

    }
}

2 个答案:

答案 0 :(得分:2)

public IEnumerable GetDoctor(int id) 
{

    return Repository.Get(id); // problem here
}

您的方法GetDoctor应该返回IEnumerable类型的对象。您的return语句仅返回单个 DocMaster对象。

所以这应该有效:

public DocMaster GetDoctor(int id) 
{

    return Repository.Get(id);
}

希望这有帮助!

答案 1 :(得分:0)

您需要对任何方法执行操作,您的返回必须与方法声明匹配。因此,如果您有方法public IEnumerable Get(int id),则需要返回任何实现IEnumerable的类。

示例BviLLe_Kid给出了正确的修正以停止接收此错误。

这是一个更完整的例子:

public IHttpActionResult Get(int id) 
{
    var doc = Repository.Get(id);

    if (doc == null)
        return NotFound();

    return Ok(doc);
}

如果您正在使用Web API,最好阅读rest