Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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
Asp.net mvc 无法隐式转换类型';System.Collections.Generic.IEnumerable';至';System.Web.Mvc.ActionResult';_Asp.net Mvc_Asp.net Identity_Claims Based Identity - Fatal编程技术网

Asp.net mvc 无法隐式转换类型';System.Collections.Generic.IEnumerable';至';System.Web.Mvc.ActionResult';

Asp.net mvc 无法隐式转换类型';System.Collections.Generic.IEnumerable';至';System.Web.Mvc.ActionResult';,asp.net-mvc,asp.net-identity,claims-based-identity,Asp.net Mvc,Asp.net Identity,Claims Based Identity,我正在使用ASP.NET MVC5标识,并尝试实现基于声明的身份验证 我得到以下错误: 无法隐式转换类型“System.Collections.Generic.IEnumerable”。您正在尝试将匿名类型的可枚举项作为ActionResult返回。通常,ActionResults希望您返回对传入模型的视图(razor模板)的引用: return View(model); 如果只想返回数据,则需要返回一个JsonResult return Json(new { Data = model },

我正在使用ASP.NET MVC5标识,并尝试实现基于声明的身份验证

我得到以下错误:


无法隐式转换类型“System.Collections.Generic.IEnumerable”。您正在尝试将匿名类型的可枚举项作为
ActionResult
返回。通常,ActionResults希望您返回对传入模型的视图(razor模板)的引用:

return View(model);
如果只想返回数据,则需要返回一个
JsonResult

return Json(new { Data = model }, JsonRequestBehavior.AllowGet);

两件事。您正在尝试将匿名类型的可枚举项作为
ActionResult
返回。通常,ActionResults希望您返回对传入模型的视图(razor模板)的引用:

return View(model);
如果只想返回数据,则需要返回一个
JsonResult

return Json(new { Data = model }, JsonRequestBehavior.AllowGet);

如果它位于MVC控制器中,则应返回一个视图,该视图接受
IEnumerable
作为模型:

public ActionResult GetClaims()
{
    var identity = User.Identity as ClaimsIdentity;
    var claims = from c in identity.Claims
                 select new
                 {
                     subject = c.Subject.Name,
                     type = c.Type,
                     value = c.Value
                 };
    return View(claims);
}
如果它位于api控制器中,则可以返回
IHttpActionResult

public IHttpActionResult GetClaims()
{
    var identity = User.Identity as ClaimsIdentity;
    var claims = from c in identity.Claims
                 select new
                 {
                     subject = c.Subject.Name,
                     type = c.Type,
                     value = c.Value
                 };
    return Ok(claims);
}

如果它位于MVC控制器中,则应返回一个视图,该视图接受
IEnumerable
作为模型:

public ActionResult GetClaims()
{
    var identity = User.Identity as ClaimsIdentity;
    var claims = from c in identity.Claims
                 select new
                 {
                     subject = c.Subject.Name,
                     type = c.Type,
                     value = c.Value
                 };
    return View(claims);
}
如果它位于api控制器中,则可以返回
IHttpActionResult

public IHttpActionResult GetClaims()
{
    var identity = User.Identity as ClaimsIdentity;
    var claims = from c in identity.Claims
                 select new
                 {
                     subject = c.Subject.Name,
                     type = c.Type,
                     value = c.Value
                 };
    return Ok(claims);
}

您的方法的功能是什么?它是否返回视图?即,它需要
返回视图(声明)(尽管您正在创建一个匿名对象,以便在视图中不起作用),或者您正在向ajax调用返回json?或者它只是您在其他地方使用的一种方法?您的方法是做什么的?它是否返回视图?即,它需要是
返回视图(声明)(尽管您正在创建一个匿名对象,以便在视图中不起作用),或者您正在向ajax调用返回json?或者它只是您在其他地方使用的一个方法?谢谢,我只是返回数据,这样Json方法就可以工作了。当返回
JsonResult
时,匿名类型就可以了(只是不是在返回视图时)。谢谢,我只是返回数据,这样Json方法就可以工作了。当返回
JsonResult
时,匿名类型就可以了(只是在返回视图时不这样做)如果使用api路径,返回具体类的
IEnumerable
也是完美的选择Ok@jenson-按钮事件,除非具体类型实现了IHttpActionResult。
public IEnumerable GetClaims()
就是我的意思。完全可以接受的web api方法。或者
公共IEnumerable GetClaims()
如果您想返回anonymous@jenson-按钮事件我明白你的意思。是的,这很好。如果按照api路线,返回具体类的
IEnumerable
也很好Ok@jenson-按钮事件,除非具体类型实现了IHttpActionResult。
public IEnumerable GetClaims()
就是我的意思。完全可以接受的web api方法。或者
public IEnumerable GetClaims()
如果您想返回anonymous@jenson-我明白你的意思。是的,很好。