我正试图找出如何将我的返回值传递给视图而没有任何异常。
我很难传递我的bool值,因为它是异步到我的视图模型。
控制器
[HttpGet]
[ChildActionOnly]
public async Task<bool> ValidateCurrentUser()
{
bool result = false;
try
{
if (string.IsNullOrEmpty(Session["ticketKey"].ToString()))
{
return result;
}
else
{
string ticket = Session["ticketKey"].ToString();
result = await _authenticationService.ValidateUser(ticket);
if (result)
return result;
}
}
catch (Exception)
{
return result;
}
return result;
}
剃刀页
@{
bool isvalid = string.Equals(Html.Action("ValidateCurrentUser", "Authentication").ToString(), true);
if (isvalid)
{
<div>
RED
</div>
}
else
{
<div>
BLUE
</div>
}
}
使用TaskCompletionSource(),如果你有问题的执行顺序和事情不同步发生。
转换Action
试试这个
[HttpGet]
[ChildActionOnly]
public async Task<bool> ValidateCurrentUser()
{
return await IsUserValid();
}
private async Task<bool> IsUserValid()
{
bool result = false;
try
{
if (string.IsNullOrEmpty(Session["ticketKey"].ToString())))
{
return result;
}
else
{
string ticket = Session["ticketKey"].ToString());
result = await _authenticationService.ValidateUser(ticket);
if (result)
return result;
}
}
catch (Exception)
{
return result;
}
return result;
}