• 1397/05/17

پاس دادن یک مقدار از کنترلر به پارشیال ویو :

با سلام
من در قسمت  ماژول کاربران یه مشکل دارم می خوام مقداری را از کنترلر به یک پارشیال ویو بفرستم ولی از هر روشی میرم شکست می خورم.

سناریوم اینه که وقتی کاربر لاگین شد و بالای صفحه خوش آمدید کاربر را نشون داد من دقیقا تو همون لحظه یه فیلد مثل تلفن کاربر رو  هم چک کنم که اگه تلفنش رو تو حساب کابری فعال نکرده بود یه دکمه دیگه دقیقا کنار همین خوش آمدید بیارم و هدایتش کنم به یه ویوی دیگه برای تکمیل و احراز هویت از طریق تلفن همراه.

Partial View

@if (User.Identity.IsAuthenticated)
{
    <li><a href="#"><i class="fa fa-user"></i> <label>@User.Identity.Name خوش آمدید</label> </a></li>
    <li><a href="/Account/LogOff"><i class="fa fa-sign-out"></i> <label>خروج</label> </a></li>
   
  //جایی که می خوام یک شرط بذارم تا اون دکمه ای که گفتم رو نشون بده

}
else
{
    <li><a href="/Register"><i class="fa fa-user-plus"></i> <label>عضویت</label> </a></li>
    <li><a href="/Login"><i class="fa fa-user"></i> <label>ورود به سایت</label> </a></li>
}

Controller

public ActionResult Login(LoginViewModel login)
        {
            string hashPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(login.Password, "MD5");
            var user = db.Users.SingleOrDefault(u => u.Email == login.Email && u.Password == hashPassword);
            if (ModelState.IsValid)
            {
                if (user != null)
                {
                    if (user.IsActiveE)
                    {
                        FormsAuthentication.SetAuthCookie(user.Username, login.RememberMe);

                        return Redirect("/");
                    }
                    else
                    {
                        ModelState.AddModelError("Email", "در حساب کاربری شما ایمیل فعال نشده است");
                    }
                }
                else
                {
                    ModelState.AddModelError("Email", "کاربری با این اطلاعات یافت نشد");
                }
            }
            return View(login);

        }

Default Layout

  <!-- Clientarea and Basket -->
                <div class="clientarea">
                    <ul>
                        @Html.Partial("_LoggedInUser")

                        <li><a href=""><i class="fa fa-shopping-bag"></i> سبد خرید <span>10</span></a></li>
                    </ul>
                </div>
                <!-- End Clientarea and Basket -->

 

  • 1397/05/17
  • ساعت 13:47

سلام 

به عنوان مدل پارشیال بهش ارسال کنید 

میتونید ViewModel بسازید 


  • 1397/05/17
  • ساعت 20:56

امکانش هست برای مدل پارشیال یک مثال ساده بزنید؟

سرچ کردم دیدم اینجوری پارامتر میشه ارسال کرد ولی انگار value فقط string میشه در حالی که من می خوام یک query که از بانکم گرفتم در یک کنترلر دیگه جایگزین value بشه ، با هر روشی هم که می خوام انتقال بدم فقط مقدار null میده.

  @Html.Partial("_LoggedInUser",new { query = value }) 

  • 1397/05/18
  • ساعت 09:17

مثال نیاز نیست دوست من خیلی ساده است

از html.Action باید استفاده کنید و در اکشن پارشیال Return کنید 


logo-samandehi