سلام دوستان
من برای نوشتن لاگین بخش ادمین سایت یه مشکلی داشتم
البته اینم توضیح بدم که توی mvc تازه وارد هستم
مشکلم اینه که فرم رو میسازم و تکست باکس های نام کاربری و رمز عبور رو هم به درستی میذارم و وقتی میخوام روی دکمه کلیک میشه انتظار میره که به سمت سرور بره ولی این اتفاق نمیوفته برا همین من اومدم BeginForm رو بهش اکشن متد و کنترلرنیم دادم یعنی به صورت زیر
Html.BeginForm("Login","Login",FormMethod.Post))
اینو که زدم درست کار میکنه ولی وقتی که مشخصات یافت نمیشه به جای اینکه همون صفحه رو لود بکنه و پیغام رو نشون بده اینکارو نمیکنه یا میره صفحه دیگه یا اینکه صفحه رو دوباره لود میکنه و آدرس بار مرورگر هم تغییر میکنه
من اون قسمتی که مشکل دارم رو کداشو میذارم لطف میکنید اگه بررسی کنید و راهنمایی کنید که چجوری باید این مشکلو حل کنم
تشکر
صفحه index
@model Asheyaneh.Areas.Admin.Models.Tbl_Operator @{ ViewBag.Title = ""; Layout = null; } <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Vendor styles --> <link rel="stylesheet" href="/admin/css/material-design-iconic-font.min.css"> <link rel="stylesheet" href="/admin/css/animate.min.css"> <!-- App styles --> <link rel="stylesheet" href="/admin/css/app.min.css"> <link href="/admin/css/custom.css" rel="stylesheet" /> </head> <body data-ma-theme="green"> <div class="login"> @Html.Action("LoginPartial"); </div> <!-- Older IE warning message --> <!--[if IE]> <div class="ie-warning"> <h1>????? !!</h1> <p>You are using an outdated version of Internet Explorer, please upgrade to any of the following web browsers to access this website.</p> <div class="ie-warning__downloads"> <a href="http://www.google.com/chrome"> <img src="img/browsers/chrome.png" alt=""> </a> <a href="http://https@www.mozilla.org/en-US/firefox/new"> <img src="img/browsers/firefox.png" alt=""> </a> <a href="http://www.opera.com/default.htm"> <img src="img/browsers/opera.png" alt=""> </a> <a href="http://https@support.apple.com/downloads/safari"> <img src="img/browsers/safari.png" alt=""> </a> <a href="http://https@www.microsoft.com/en-us/windows/microsoft-edge"> <img src="img/browsers/edge.png" alt=""> </a> <a href="http://windows.microsoft.com/en-us/internet-explorer/download-ie"> <img src="img/browsers/ie.png" alt=""> </a> </div> <p>Sorry for the inconvenience!</p> </div> <![endif]--> <!-- Javascript --> <!-- Vendors --> <script src="/admin/vendors/bower_components/jquery/dist/jquery.min.js"></script> <script src="/admin/vendors/bower_components/tether/dist/js/tether.min.js"></script> <script src="/admin/vendors/bower_components/bootstrap/dist/js/bootstrap.min.js"></script> <script src="/admin/vendors/bower_components/Waves/dist/waves.min.js"></script> <!-- App functions and actions --> <script src="/admin/js/app.min.js"></script> </body> </html>
صفحه پارشال ویو که فرم لاگین داخلشه
<!-- Login --> <div class="login__block active" id="l-login"> <div class="login__block__header"> <i class="zmdi zmdi-account-circle"></i> ورود به بخش مدیریت <div class="actions actions--inverse login__block__actions"> <div class="dropdown"> <i data-toggle="dropdown" class="zmdi zmdi-more-vert actions__item"></i> <div class="dropdown-menu dropdown-menu-left"> <a class="dropdown-item" data-ma-action="login-switch" data-ma-target="#l-forget-password" href="default.htm">فراموشی رمز عبور</a> </div> </div> </div> </div> @using (Html.BeginForm("Login","Login",FormMethod.Post)) { @Html.AntiForgeryToken() <div class="login__block__body"> @ViewBag.Alert <div class="form-group form-group--float form-group--centered"> <input type="text" class="form-control" name="Username"> <label> نام کاربری</label> <i class="form-group__bar"></i> </div> <div class="form-group form-group--float form-group--centered"> <input type="password" class="form-control" name="Password"> <label>رمز عبور</label> <i class="form-group__bar"></i> </div> @*<button class="btn btn--icon login__block__btn"><i class="zmdi zmdi-long-arrow-right"></i></button>*@ <input type="submit" value="Create" class="btn btn-primary waves-effect" /> </div> } </div>
اینم کنترلر
using Asheyaneh.Areas.Admin.Models; using Asheyaneh.Models; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.Mvc; namespace Asheyaneh.Areas.Admin.Controllers { public class LoginController : Controller { private AsheyanehContext db = new AsheyanehContext(); // GET: Admin/Login public ActionResult Index() { return View(); } [HttpPost] [ValidateAntiForgeryToken] public ActionResult Login(Tbl_Operator login) { Tbl_Operator op = new Tbl_Operator(); DataTable dt = new DataTable(); var list = db.Tbl_Operator.Where(c => c.UserName.ToLower() == login.UserName.ToLower() && c.Password == login.Password); if (list.Count()>0) { //int a = list.Count(); //var s = list.OrderByDescending(x => x.ID); return Redirect("/admin/operator"); } else { ViewBag.Alert = "<span style='color:red'>نام کاربری و رمز عبور اشتباه میباشد</span>"; } return View("index"); } public ActionResult LoginPartial() { return PartialView("Login"); } } }
شما در کد زیر فرستادی به index
return View("index");
باید به شکل زیر عمل کنید
return View(login);
اینجوری هم زدم ولی فرم لاگین رو داخل صفحه مدیریت باز میکنه و پیغام خطا رو اونجا نشون میده و آدرس هم توی مرورگر به این شکل میشه http://localhost:23945/Admin/Login/Login
در حالی که میخوام روی این آدرس http://localhost:23945/Admin/Login بمونه
والا من متوجه منظورن نمیشم
چرا لاگین در ادمین هست ؟
سیاست این کار چیست ؟
لاگین کاربر نیست این لاگین مدیر سایت هستش که میخواد وارد محیط مدیریتی سایت بشه
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)