[英]Redirect to action in area actions
我有一個區域有一個 controller 有一些動作。
controller 名稱是home 。
有問題的操作如下所示:
public IActionResult Action1()
{
some code ...
return RedirectToAction("Action2");
}
Action2 看起來像:
public IActionResult Action2()
{
some code ...
return View();
}
問題是它重定向到上述操作,但它沒有在 controller 名稱之前寫入區域名稱
url 應該是 => MyArea/home/action2
但它是 => home/action2
這會產生 500 錯誤。
我的創業公司是:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapAreaControllerRoute(
name: "areas",
areaName: "MyArea",
pattern: "{area=MyArea}/{controller=Home}/{action=Index}/{id?}"
);
});
有什么解決辦法嗎?
提前致謝。
1 - RedirectToAction
更改為
return RedirectToAction("Action2", "Home", new { area = "MyArea" });
2 - 您的路線配置必須是這樣的,您必須在默認 controller之前注冊區域
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "MyArea",// or name: "areas",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
3 - 在 controller 的頂部,您必須添加[Area("MyArea")]
屬性
[Area("MyArea")]
public class HomeController : Controller
{
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.