如何根据用户类型重定向到特定的布局页面?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据用户类型重定向到特定的布局页面?相关的知识,希望对你有一定的参考价值。
我有一个登录页面,当用户成功登录时,当前会重定向到默认布局页面。但是,我为不同的用户创建了一个不同的布局页面,我想要做的是能够查看我的数据库并检查用户的类型以及当用户名和密码正确时,qazxs将其定位到特定的布局页面,具体取决于他们的用户类型。我对每种用户类型都有不同的看法。
response.redirect
The different user views under shared folder.
答案
我将扩展MCoder的原始答案。
如果您使用:
public partial class Login : System.Web.UI.Page
{
SqlCommand cmd = new SqlCommand();
SqlConnection con = new SqlConnection();
SqlDataAdapter sda = new SqlDataAdapter();
DataSet ds = new DataSet();
protected void Page_Load(object sender, EventArgs e)
{
con.ConnectionString = "Data Source=CHRIS\SQLEXPRESS;Initial Catalog=FPSDD;Integrated Security=True";
con.Open();
}
protected void BtnLogin_Click(object sender, EventArgs e)
{
cmd.CommandText = "SELECT PersonType FROM Person where Username='" + txtUsername.Text + "' and Password='" + txtPassword.Text + "' and PersonType='" + userType.SelectedValue + "'";
cmd.Connection = con;
sda.SelectCommand = cmd;
sda.Fill(ds, "Person");
if (ds.Tables[0].Rows.Count > 0)
{
if (userType.SelectedValue == "Student")
{
Response.Redirect(Url.Action(""));
}
else if (userType.SelectedValue == "Instructor")
{
Response.Redirect("");
}
else if (userType.SelectedValue == "Counselor")
{
Response.Redirect("");
}
else if (userType.SelectedValue == "Parent")
{
Response.Redirect("");
}
else if (userType.SelectedValue == "Principal")
{
Response.Redirect("");
}
else if (userType.SelectedValue == "Admin")
{
Response.Redirect("");
}
else
{
cmd.CommandText = "SELECT PersonType FROM Person where Username='" + txtUsername.Text + "' and Password='" + txtPassword.Text + "'";
cmd.Connection = con;
sda.SelectCommand = cmd;
sda.Fill(ds, "Person");
if (ds.Tables[0].Rows.Count > 0)
{
Label1.Text = "Invalid User Type. Please Try Again!";
}
else
{
Label1.Text = "Invalid User Type, Username or Password. Please Try Again!";
}
}
}
}
您可以将此Redirect方法的重载传递给参数。
当您的用户登录时,返回他/她的用户类型。像这样将它传递给Redirect:
return RedirectToAction("YourMethodName", "YourControllerName");
并且在YourController.YourMethod(paramType paramName)中有一个条件语句。
return RedirectToAction("YourMethodName", "YourControllerName", new { paramName = userType });
如果您有超过2或3种用户类型,则可以使用Switch / Case而不是If / Else。
另一答案
假设这是一个MVC Web应用程序。不要使用if(paramName = x)
{
return View("CorrectViewName", appropriateViewModel);
}
else ...
改为使用
response.redirect()
以上是关于如何根据用户类型重定向到特定的布局页面?的主要内容,如果未能解决你的问题,请参考以下文章