如何解决此IF语句?

时间:2019-04-08 22:23:00

标签: c# asp.net-mvc

我是asp.net的新手,在另一个程序员后面工作。我需要根据成员资格类型进行操作。所以,我想出了怎么做!但是,我有一个无法接收的代码。我不应该能够简单地执行else语句来解决此问题吗? 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 个答案:

答案 0 :(得分:2)

您的问题是第2行出现了错误的分号。

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

if语句控制分号(无操作)的执行,而不是控制下一行的return语句。

这意味着您的return RedirectToAction行将始终执行。因此,之后的所有内容都是无法访问的。

课程:始终在控制流上使用花括号:

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

此外,如果允许VS格式化代码,这将变得更加清晰。使用“ ctrl-k + d”格式化文档。这样可以确定return RedirectToAction行,清楚表明它不在if语句下。