我有一个欧盟国家清单。
当用户在注册表上输入居住国时,我运行foreach
块以检查他们居住的国家是否在欧盟中。如果是,我将true
分配给我声明的布尔值isEuropeanUnion
。如果没有,我将isEuropeanUnion
分配给false
并将其传递到要保存在数据库中的新用户对象上。
但是,由于我没有在foreach
命中的情况下退出true
块,因此它总是返回false
。当我尝试将return
添加到foreach
块时,我得到红色的波浪形提示
需要可转换为“ ActionResult”类型的对象。
//check if the user resides in a EU country
var EUCountries = dbContext.EuropeanUnionCountries.ToList();
foreach (var country in EUCountries)
{
if (model.CountryOfResidence == country.Name)
{
isEuropeanUnion = true;
return;
} else
{
isEuropeanUnion = false;
}
}
var user = new ApplicationUser {
UserName = model.Email,
Email = model.Email,
FirstName = model.FirstName,
LastName = model.LastName,
CreatedAt = DateTime.Now,
LastUpdated = DateTime.Now,
CountryOfResidence = model.CountryOfResidence,
IsEuropeanUnion = isEuropeanUnion
};
答案 0 :(得分:1)
我只能猜测您正在尝试在返回IActionResult
的操作中调用代码,因此在这种情况下您不能使用return;
,必须返回一个从IActionResult继承的对象。
我会尝试做这样的事情:
var flag = false;
foreach (var country in EUCountries)
{
if (model.CountryOfResidence == country.Name)
{
// if you don't use isEuropeanUnion inside the foreach loop
// the code makes no sense
isEuropeanUnion = true;
flag = true;
break;
}
else
{
isEuropeanUnion = false;
}
}
if (flag)
{
// do something
}