需要类型可转换为“ ActionResult”的对象

时间:2018-08-22 21:52:14

标签: c# asp.net .net asp.net-mvc actionresult

我有一个欧盟国家清单。

当用户在注册表上输入居住国时,我运行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
};

1 个答案:

答案 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
}