C# 获取 CreatedAtRoute 的 return 对象
C# Get return object of CreatedAtRoute
我有一个控制器方法,它 returns 一个 CreatedAtRoute 对象。如何提取返回的对象?
我的测试class(调用控制器):
[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 does not contain a definition for 'Value'
从返回的 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);
}
我有一个控制器方法,它 returns 一个 CreatedAtRoute 对象。如何提取返回的对象?
我的测试class(调用控制器):
[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 does not contain a definition for 'Value'
从返回的 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);
}