سلام
کدای زیرو برای کنترل UserName و PassWord با Ajax نوشتم! فعلا در نظر گرفتم که اگه درست باشن یه View از ردیف تو دیتابیس نشون بده
وقتی یوزر و پسورد رو وارد میکنیم مقادیرو تو PartialView نشون میده!!!
و وقتی مقدار اشتباه میزنیم مقدار نشون نمیده ولی دوباره فریم مربوطه رو نشون میده ولی خالی که درسته!
میخام یه دستور بذارم وقتی مقدار تست شد و درست بود Model باز بشه؟
<script> $(document).ready(function () { $("#BtnEnter").mousedown(function () { //SearchUser(string UserName , string PassWord) var url = '@Url.Action("CheckUser", "Ajax")'; var user = $("#UserName").val(); var pass = $("#PassWord").val(); var SendingData1 = "UserName=" + user ; var SendingData2 = "PassWord=" + pass; var datasend = SendingData1 +"&"+ SendingData2; $.get(url, datasend, function (data) { $("#dvContent").html(data); $("#myModal").modal("show"); }); }); }) </script>
ینی میخام وقتی به قسمت مشخص شده زیر رسید مقدار برگشتی کنترل بشه اگه بدون مقدار بود یه Alert بده
<script> $(document).ready(function () { $("#BtnEnter").mousedown(function () { //SearchUser(string UserName , string PassWord) var url = '@Url.Action("CheckUser", "Ajax")'; var user = $("#UserName").val(); var pass = $("#PassWord").val(); var SendingData1 = "UserName=" + user ; var SendingData2 = "PassWord=" + pass; var datasend = SendingData1 +"&"+ SendingData2; $.get(url, datasend, function (data) { اینجا چک بشه که مقدار برگشتی دارد یا نه!!! $("#dvContent").html(data); $("#myModal").modal("show"); }); }); }) </script>
روی Data شرط بزارید اگر خالی نبود عملیات مورد نظرتون انجام بشه
سلام
این شرطو گذاشتم ولی کلا مقدار else رو برمیگردونه
<script> $(document).ready(function () { $("#BtnEnter").mousedown(function () { //SearchUser(string UserName , string PassWord) var url = '@Url.Action("CheckUser", "Ajax")'; var user = $("#UserName").val(); var pass = $("#PassWord").val(); var SendingData1 = "UserName=" + user ; var SendingData2 = "PassWord=" + pass; var datasend = SendingData1 +"&"+ SendingData2; $.get(url, datasend, function (data) { if (data.lenght >0) { $("#dvContent").html(data); $("#myModal").modal("show");} else alert("Error"); }); }); }) </script>
حتما مقداری بر نمیگرداند
کد اکشن را قرار دهید
شرط ره به شکل زیر بنویسید و امتحان کنید
if (data.lenght!==null)
با این تغییرات الان داخل if اجرا میشه تو هر صورتی حتی وقتی اشتباهه
<script> $(document).ready(function () { $("#BtnEnter").mousedown(function () { //SearchUser(string UserName , string PassWord) var url = '@Url.Action("CheckUser", "Ajax")'; var user = $("#UserName").val(); var pass = $("#PassWord").val(); var SendingData1 = "UserName=" + user ; var SendingData2 = "PassWord=" + pass; var datasend = SendingData1 +"&"+ SendingData2; $.get(url, datasend, function (data) { if (data.lenght !== 0) { $("#dvContent").html(data); $("#myModal").modal("show");} else alert("Error"); }); }); }) </script>
مهندس break point گرفتم تو گوگل کروم، مقدار وقتی اشتباهه هم حتی lenght بر میگرده در صورتی که تو کلاسم مقداری رو نشون نمیده چون دستورای زیرو نوشتم تو کلاسم
public PartialViewResult CheckUser(string UserName,string PassWord) { var users = (from item in db.UserBases where (item.UserName.Equals(UserName)) & (item.PassWord.Equals(PassWord)) select new ViewModel.UserVM { UserName = item.UserName, FirstName = item.FirstName, LastName = item.LastName }).ToList(); return PartialView(users); }
مهندس کلا وقتی اوکی باشه مقدار 455 برمیگرده و وقتی اشتباه باشه کد 231!
این ثابته آیا؟
دوست من 0 ننویسید به شکل
!== null بنویسید
مهندس زدم اینم ولی بازم مشکل داره
بهرحال مقدار data برابر با null نیست، فک کنم مشکلم این باشه
درسته null نیست چون شما Partial برمیگردونید
باید به شکل زیر بنویسید
public ActionResult CheckUser(string UserName,string PassWord) { var users = (from item in db.UserBases where (item.UserName.Equals(UserName)) & (item.PassWord.Equals(PassWord)) select new ViewModel.UserVM { UserName = item.UserName, FirstName = item.FirstName, LastName = item.LastName }).ToList(); if(users.Any()) return PartialView(users); retun Null; }
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)