【发布时间】:2018-10-03 10:37:32
【问题描述】:
我必须根据我的自定义对象的某些属性修改IActionResult。
我正在尝试不同的方法来改变,但都没有奏效
public static class ExtensionMethods
{
public static IActionResult Change(this Controller controller, ExternalResponse obj)
{
if (case 1)
{
return Ok(extResp);
}
else if(case 2)
{
return NotFound(extResp);
}
else if(case 31)
{
return Unauthorized();
}
else
{
return BadRequest(extResp);
}
}
public static IActionResult ChangeTwo(this ControllerBase controller, ExternalResponse obj)
{
if (case 1)
{
return Ok(extResp);
}
else if(case 2)
{
return NotFound(extResp);
}
else if(case 31)
{
return Unauthorized();
}
else
{
return BadRequest(extResp);
}
}
}
请建议我该怎么做。
【问题讨论】:
-
您有两个返回类型为 IActionResult 的扩展方法。
-
它们只是一个示例。我首先尝试了控制器类,然后是 ControllerBase 类,但都没有编译
-
也许您需要先实现 IActionResult 但为什么要修改它?
-
您究竟是如何从控制器调用这些扩展方法的?这。改变?你添加了命名空间吗?就个人而言,id 更喜欢创建自己的控制器类并放置 id 需要的常用控制器方法,并在需要时灵活地覆盖行为。示例:MyControllerBase : 控制器
-
“但都没有工作”请具体说明您的问题是什么:编译错误、运行时错误、它的行为与您的预期不符等。
标签: c# .net-core extension-methods asp.net-core-webapi asp.net-core-2.1