لطفا بفرمایید تفاوت دستور Redirect و RedirectToAction در Core چیست ؟ الان چه فرقی بین دو دستور زیر هست ؟
return Redirect("/Contrller/Action");
//
return RedirectToAction("/Controller/Action");
برای اینکه تفاوت بین دستورات Redirect و RedirectToAction را بهتر متوجه بشید از هر کدوم مثال هایی رو میارم براتون.
به صورت عادی توسط دستور RedirectToAction شما می تونید فقط درون یک کنترلر تغییر مسیر بدید. به عنوان مثال به کدهای زیر توجه کنید.
public class AccountController : Controller
{
[HttpGet]
public IActionResult Login()
{
return RedirectToAction("/Account/Panel");
//Or
//return RedirectToAction("Panel","Account");
}
[HttpGet]
public IActionResult Panel()
{
return View();
}
}
در مثال بالا دو Action به نام های Login و Panel داریم که هر دو اکشن در کنترلر Account قرار دارد. خب برای اینکه کاربر را از اکشن Login به اکشن Panel هدایت کنیم می تونیم از دستور RedirectToAction استفاده کنیم.
از دستور RedirectToAction به صورت ساده و بدون داشتن پارامتر هم می تونید استفاده کنید. به مثال زیر توجه کنید.
[HttpGet]
public IActionResult Product(int id)
{
var product = RetrieveProduct(id);
return View(product);
}
[HttpPost]
public IActionResult Product(int id, Product product)
{
UpdateProduct(product);
return RedirectToAction();
}
در مثال بالا بعد از اجرای اکشن Product به صورت HttpPost مجدد به اکشن Product به صورت HttpGet بر می گردد.
شما با استفاده از دستور RedirectToAction میتونید کاربر رو به یک کنترلر جداگانه در یک Area دیگه هم هدایت کنید. برای این منظور به مثال زیر توجه کنید.
public class AccountController : Controller
{
[HttpGet]
public IActionResult Login()
{
return RedirectToAction("Index","Home", new { Area = "myArea"});
}
}
در دستور بالا کاربر به کنترلر Home و اکشن Index که در Area با نام myArea وجود دارد هدایت می شود. در واقع بعد از اجرای دستور آدرس Url به صورت زیر خواهد بود.
https://myDomain.com/myArea/Home/Index
همچنین شما توسط دستور RedirectToAction میتونید به اکشن یا کنترلر دیگه پارامتر هم ارسال کنید. برای این منظور لینک زیر رو مطالعه کنید.
ارسال پارامتر توسط دستور RedirectToAction در Core
خب با نحوه کار با دستور RedirectToAction آشنا شدید. از دستور Redirect برای هدایت کاربر به یک مسیر کامل استفاده میشه. به عنوان مثال :
return Redirect('https://porsnet.ir/ProgrammingCourse/Index');
//Or
return Redirect("/AdminPanel/Admin/Index");
خب کاربر در این حالت به مسیر مشخص شده هدایت میشه. همچنین دستور Redirect دارای overLoad های مختلف نیست. یعنی شما فقط به یک صورت می تونید از این دستور استفاده کنید که در بالا مشاهده می کنید.
خب اگر بخواید با استفاده از دستور Redirect پارامتری رو به یک مسیر ارسال کنید می تونید از روش زیر استفاده کنید.
return Redirect("Home/Index?id=2&name='ali'");
در مثال بالا دو پارامتر به نام Id به مقدار 2 و name با مقدار ali به مسیر Home و Index ارسال شده است.
بنابراین میشه گفت تفاوتهای بین دستور Redirect و RedirectToAction میشه :
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
79
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
113
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1357
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
217
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
397
- پاسخ :
2
|
تاریخ :
1403/06/25
- ساعت :
11:39:00 PM
- بازدید :
568
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2013
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
79
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
113
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
931
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1357
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1161
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
599
- پاسخ :
1
|