c# - C# 获取 CreatedAtRoute 的返回对象
问题描述
我有一个返回 CreatedAtRoute 对象的控制器方法。如何提取返回的对象?
我的测试类(调用控制器):
[Test]
public void AddUser(){
AppUser au= new AppUser();
GreenCardController gc = new GreenCardController();
ActionResult<AppUser> res = gc.UpdateArgosUser(au); //<-- How can I turn this into an AppUser object?
//var temp=res.Value; //this didnt have the Object
Assert.AreEqual(res.FirstName,"")
}
控制器方法:
public ActionResult<AppUser> UpdateArgosUser([FromBody]AppUser au)
{
return CreatedAtRoute(nameof(GreenCardController.GetArgosUser), new
{ userid = au.UserId }, au);
}
当我在调试模式下暂停这res.Result.Value
似乎是我正在寻找的,但我得到了错误:
ActionResult 不包含“值”的定义
解决方案
从返回的 中提取所需的值ActionResult<AppUser>
,转换为已知类型以访问所需的成员。
由于控制器调用return CreatedAtRoute(...)
,那么您需要访问该ActionResult<TResult>.Result
属性以ActionResult
从控制器中获取返回。
从那里获取对象结果中的存储值对象是一个问题。
[Test]
public void AddUser(){
//Arrange
AppUser expected = new AppUser();
GreenCardController controller = new GreenCardController();
//Act
ActionResult<AppUser> actionResult = controller.UpdateArgosUser(expected);
CreatedAtRouteResult result = actionResult.Result as CreatedAtRouteResult;
AppUser actual = result.Value as AppUser;
//Assert
Assert.AreEqual(expected, actual);
}
推荐阅读
- sql - 如何找到一列的最后一个非空值并递归地找到另一列的总和值
- java - 如何为不同数据类型的不同类实现接口
- python - 需要 Python 正则表达式多个模式匹配和反模式匹配
- python - Flask Route 将 Args 传递给 Celery 任务
- wso2 - WSO2 Enterprise Integrator 数据库迁移
- angular - 我无法让路线在 Angular 中工作,请指教
- virtual-machine - 我们可以使用 libvert 单步 QEMU
- javascript - 时刻获取时间段 AM//PM 本地化
- .net - 如何为 .NET Standard 创建“NuGet 包管理项目”?
- ruby-on-rails - Rails:收集连接表出现在两个查询中的记录