Как мне исправить это утверждение IF? - PullRequest
0 голосов
/ 09 апреля 2019

Я новичок в asp.net, иду за другим программистом. Мне нужно основывать действие на типе членства. Итак, я разобрался, как это сделать! Тем не менее, у меня есть недоступный код. Разве я не могу просто сделать еще заявление, чтобы исправить эту проблему? Visual Studio говорит недоступный код после моего начального оператора if.

string membership = gUserProfile.m_MembershipType;
        if (membership == "Free") ;

           return RedirectToAction("Register", "Account");




        if (!GlobalFunction.IsAuthenticated)

            return RedirectToAction("Login", "Account");


        gUserProfile = new ProfileUser(gUserProfile.m_UserID);
        if(Session["newcomputer"] != null){
            ViewBag.newComputer = "1";
        }
        ViewBag.activeMenu = pPage;
        ViewBag.Content_Workstation = getAjaxWorkstation();
        ViewBag.Content_Server = getAjaxServer();
        return View(pPage,gUserProfile);

1 Ответ

2 голосов
/ 09 апреля 2019

Ваша проблема - ошибочная точка с запятой в строке 2.

if (membership == "Free") ; // whats that semicolon for?

Оператор if контролирует выполнение точки с запятой (no-op), а не оператор возврата в следующей строке.

Это означает, что ваша строка return RedirectToAction всегда будет выполняться. Итак, все после него недоступно.

Урок: всегда используйте фигурные скобки в потоке управления:

if(membership == "Free") {
 return RedirectToAction("Register", "Account");
}

Кроме того, если вы разрешите VS форматировать ваш код, это станет более понятным. Используйте "Ctrl-K + D" для форматирования документа. Это приведет к отступу строки return RedirectToAction, и станет ясно, что она не соответствует выражению if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...