我在控制器中有以下操作方法:
/// <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 });
}
记录执行重定向(或类似操作)的控制器操作的返回值的常用或可接受的方法是什么?
答案 0 :(得分:0)
作为参考,我在对象浏览器中打开了一个.NET Framework DLL并查看了方法签名。如果该方法返回了一些值,通常会填写<returns>
XML注释。随意使用它作为指导。
如果您必须处理非常严格的代码分析或StyleCop独裁者,我建议如下:
/// <returns>Returns a redirect to an action.</returns>
否则,规范似乎是放弃“返回”这个词并使用类似的东西:
/// <returns>A redirect to an action.</returns>
在任何一种情况下,returns标记中的文本通常是返回的对象类型的逐字符串。
答案 1 :(得分:0)
使用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()
{
// ...
}
并且自从ASP.NET Core 2.1开始,我们有了ActionResult<T>,因此,幸福的路径在属性中的详细程度可以降低,并且在编译阶段还可以进行类型检查。
[HttpGet]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public Task<ActionResult<FooDto>> GetFoo()
{
// ...
}