دسته بندی ها
19:07 1400/01/03

دریافت Id کاربر و ارسال به View در Asp.net Core

مشخصات سوال کننده :
کاربر : Sophi1340     امتیاز کاربر : 0     رتبه کاربر : 7066
دسته بندی : Asp.net Core Asp.net Mvc

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3430
هوش مصنوعی

پاسخ هوش مصنوعی

برای اینکه بتوانید شناسه کاربر را به یک صفحه Razor ارسال کنید، می توانید از طریق URL و پارامترها این کار را انجام دهید. در اینجا یک راهنمایی برای انجام این کار ارایه می شود:

ابتدا در صفحه `Index.cshtml` (جایی که دکمه Create وجود دارد) یک لینک یا دکمه بسازید که به صفحه Create برود و شناسه کاربر را به عنوان پارامتر URL ارسال کند. به عنوان مثال:


Create

در کد بالا، `@userId` باید با شناسه کاربر جاری که می خواهید ارسال کنید جایگزین شود. این متغیر باید در کنترلر یا صفحه موجود باشد.

سپس در صفحه `Create.cshtml.cs` (کد-بی هـای Razor Page)، باید شناسه کاربر دریافتی را در متد `OnGet` بگیرید:


public class CreateModel : PageModel
{
    [BindProperty(SupportsGet = true)]
    public int UserId { get; set; }

    public void OnGet()
    {
        // UserId حالا می تواند به عنوان شناسه کاربر استفاده شود
    }
}

پس از اینکه شناسه کاربر را دریافت کردید، می توانید آن را در یک عنصر `` در `Create.cshtml` قرار دهید:



با این کار زمانی که کاربر بر روی دکمه Create کلیک کند، شناسه کاربر به صفحه Create ارسال شده و در فیلد مخفی قرار می گیرد.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : saedbfd 23:34 1400/01/03

برای دریافت ID کاربری که در سیستم لاگین کرده می تونید از کلاس UserManager که یکی از کلاس های Identity هست استفاده کنید. دقت کنید برای دریافت Id کاربر اولا کاربر باید در سیستم لاگین کرده باشه و ثاتیا اینکه شما باید حتما از Identity خود Core استفاده کرده باشید.

public class HomeController : Controller
{
    private readonly UserManager<ApplicationUsers> _userManager;
    
    public HomeController(UserManager<ApplicationUsers> userManager)
    {
       _userManager = userManager;
    }


    public IActionResult Index()
    {
        ViewBag.UserId = _userManager.GetUserId(HttpContext.User);
        return View();
    }
}

در اکشن Index آی دی کاربر در ViewBag.UserId ذخیره میشه و میتونید در View دریافت کنید. البته شما در خود ویو هم میتونید آی دی کاربر رو دریافت کنید. لینک زیر رو برای این کار مطالعه کنید.

گرفتن Id کاربر لاگین شده در View در Asp.net Core

به این پاسخ امتیاز بدهید    0
امتیاز: 1664 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود