记录操作结果的返回值的可接受方法



>我在控制器中有以下操作方法:

/// <summary>
/// Redirects the user to the Dashboard for their default role.
/// </summary>
/// <returns>???</returns>
public ActionResult Dashboard()
{
    return RedirectToAction("Index", "Dashboard", new { area = ((User)User).Roles[0].Name });
}

记录执行重定向(或类似操作)的控制器操作的返回值的常见或可接受的方法是什么?

作为参考,我在对象浏览器中打开了一个.NET Framework DLL,并查看了方法签名。 如果该方法返回某个值,则通常会填写<returns> XML 注释。 请随意将其用作指南。

如果你必须处理一个非常严格的代码分析或StyleCop独裁者,我建议如下:

/// <returns>Returns a redirect to an action.</returns>

否则,规范似乎是去掉"退货"这个词,而是像这样:

/// <returns>A redirect to an action.</returns>

在任一情况下,return 标记中的文本通常是返回的对象类型的逐字字符串。

使用 ProducesResponseType 属性。虽然,它只是.NET Core,但它是 2020 年,例如

[ProducesResponseType(StatusCodes.Status308PermanentRedirect)]
public ActionResult Dashboard()
{
    return RedirectToAction("Index", "Dashboard", new { area = ((User)User).Roles[0].Name });
}

添加此属性的更全面方法是

[HttpGet]
[ProducesResponseType(typeof(FooDto), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public Task<IActionResult> GetFoo()
{
  // ...
}

从 Core 2.1 ASP.NET 开始,我们就有了 ActionResult,因此快乐路径在属性中可以不那么冗长,并且在编译阶段也会进行类型检查。

[HttpGet]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public Task<ActionResult<FooDto>> GetFoo()
{
  // ...
}

最新更新