Отображение информации о пользователе в MVC с использованием @ Model.xxxx - PullRequest
0 голосов
/ 19 октября 2019

У меня есть страница входа и страница регистрации, все работают нормально. У меня есть таблица пользователей, которую я создал в базе данных sql server со столбцом Имя пользователя, Полное имя, Школа, Курс. Я хочу отобразить все детали пользователя на странице просмотра бокового меню в MVC. Но когда я вхожу в систему, я получаю сообщение об ошибке «объект-ссылка-не-установлен-экземпляр-объекта». У меня также есть действие контроллера. Пожалуйста, помогите.

Это для MVC

@ модель ORMOnlineExamApp.Models.Candidate

 <div class="row">

        <div class="col-md-3">
            <div class="container-fluid">
                <div class="thumbnail" style="width:200px">
                    <div class="panel panel-primary">
                        <div class="panel-heading">
                            <h3 class="panel-title">Candidate's Details</h3>
                        </div>
                    </div>
                    <p>

                        <h4 style="font-weight:bold">Application No:</h4>
                    </p>
                    <p>
                        @Model.Username
                    </p>

                    <hr />
                    <p>
                        <h4 style="font-weight:bold">Name:</h4>
                    </p>
                    <p>
                        @Model.FullName
                    </p>
                    <hr />

                    <p>
                        <h4 style="font-weight:bold">School:</h4>
                    </p>
                    <p>
                        @Model.School
                    </p>
                    <hr />
                    <p>
                        <h4 style="font-weight:bold">Course:</h4>
                    </p>
                    <p>
                        @Model.Course
                    </p>
                </div>





    //Controller
     public ActionResult Contact(string id)
            {
                using (ORMOnlineExamEntitiesApp db = new ORMOnlineExamEntitiesApp())
                {
                    var user = db.Candidates.SingleOrDefault(u => u.Username == id);
                    return View(user);
                }


            }


Please find the login page below:
 //Login POST
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Login(CandidateLogin login, string ReturnUrl = "")
        {
            string message = "";


            using (ORMOnlineExamEntitiesApp dc = new ORMOnlineExamEntitiesApp())
            {
                var v = dc.Candidates.Where(a => a.Username == login.Username).FirstOrDefault();
                if (v != null)
                {

                    if (string.Compare(Crypto.Hash(login.Password), v.Password) == 0)
                    {
                        int timeout = login.RememberMe ? 525600 : 20; // 525600 min = 1 year
                        var ticket = new FormsAuthenticationTicket(login.Username, login.RememberMe, timeout);
                        string encrypted = FormsAuthentication.Encrypt(ticket);
                        var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted);
                        cookie.Expires = DateTime.Now.AddMinutes(timeout);
                        cookie.HttpOnly = true;
                        Response.Cookies.Add(cookie);


                        if (Url.IsLocalUrl(ReturnUrl))
                        {
                            return Redirect(ReturnUrl);
                        }
                        else
                        {
                            FormsAuthentication.SetAuthCookie(login.Username, true);
                            Session["UserId"] = login.Username.ToString();
                            return RedirectToAction("Contact", "Home");
                        }
                    }
                    else
                    {
                        message = "Invalid credential provided";
                    }
                }
                else
                {
                    message = "Invalid credential provided";
                }
            }
            ViewBag.Message = message;
            return View();
        }
...