簡體   English   中英

重定向到區域操作中的操作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM