Создание различного макета для разных типов пользователей

Christopher Macapagal спросил: 03 февраля 2018 в 11:38 в: c#

В качестве фона я создаю базу данных для студентов. Я работаю над его частью страницы. На данный момент я могу показать различный тип пользователя в раскрывающемся списке и указать пользователям свое имя пользователя и пароль. Я могу успешно зарегистрировать пользователей с правильными учетными данными и перенаправить их на макет по умолчанию в _ViewStart.csthml. Моя проблема в том, что я не совсем уверен, как перенаправить их на другую страницу. В приведенном ниже коде я решил проверить тип пользователя, который выбран пользователями, и создать отдельный макет для каждого типа пользователя.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;namespace LoginQuery
{
    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("");
                }
                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 if (userType.SelectedValue == "Counselor")
                {
                    Response.Redirect("");
                }
                else if (userType.SelectedValue == "Instructor")
                {
                    Response.Redirect("");
                }
                else if (userType.SelectedValue == "Counselor")
                {
                    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!";
                    }
                }
            }
        }
        protected void UserType_SelectedIndexChanged(object sender, EventArgs e)
        {
            ImageDef.ImageUrl = "Images/student.png";
            {
                if (userType.SelectedValue == "Student")
                {
                    ImageDef.ImageUrl = "Images/student.png";
                }
                else if (userType.SelectedValue == "Teacher")
                {
                    ImageDef.ImageUrl = "Images/teacher.png";
                }
                else if (userType.SelectedValue == "Counselor")
                {
                    ImageDef.ImageUrl = "Images/counselor.png";
                }
                else if (userType.SelectedValue == "Parent")
                {
                    ImageDef.ImageUrl = "Images/parent.png";
                }
                else if (userType.SelectedValue == "Principal")
                {
                    ImageDef.ImageUrl = "Images/principal.png";
                }
                else if (userType.SelectedValue == "Admin")
                {
                    ImageDef.ImageUrl = "Images/admin.png";
                }
                else
                {
                    ImageDef.ImageUrl = "Images/student.png";
                }
            }
        }
    }
}

В _ViewStart.cshtml, Я управляю рендерингом макетов с помощью файла _ViewStart в корневом каталоге папки "Представления".

@{
    var controller = HttpContext.Current.Request.RequestContext.RouteData.Values["Controller"].ToString();
    string cLayout = "";
    if (controller == "UsersController")
    {
        cLayout = "~/Views/Shared/_Students.cshtml";
        cLayout = "~/Views/Shared/_Parents.cshtml";
        cLayout = "~/Views/Shared/_Principal.cshtml";
        cLayout = "~/Views/Shared/_Instructor.cshtml";
        cLayout = "~/Views/Shared/_Counselors.cshtml";
        cLayout = "~/Views/Shared/_Layout.cshtml";
    }
    else if (controller == "")
    {
        Layout = "~/Views/Shared/_Dashboard.cshtml";
    }
    Layout = cLayout;
}

Будут оценены любые предложения о том, как перенаправить разные типы пользователей на разные страницы!


0 ответов