我是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);
答案 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
语句下。