控制器在区域中的RedirectToAction - c#

我开始使用ASP.Net核心MVC 3.1,并且有一个名为Foo的区域:

endpoints.MapAreaControllerRoute(
    name: "Foo",
    areaName: "Foo",
    pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);

在该区域中,一个名为Test且具有索引动作的控制器:https://localhost:44390/Foo/Test/-可以正常工作。

我正在尝试从另一个控制器重定向到

return RedirectToAction("Index", "Test", new { area = "Foo" });

但这会将我发送到https://localhost:44390/Test?area=Foo

如何使用RedirectToAction()https://localhost:44390/Foo/Test/结尾?

参考方案

当在默认路由后放置MapAreaControllerRoute时,我会重现您的问题,因此要解决此问题,您的区域路由配置必须放在第一位。

 app.UseEndpoints(endpoints =>
        {
            endpoints.MapAreaControllerRoute(
               name: "Foo",
               areaName: "Foo",
               pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
           );
            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}");

        });

在ASP.NET Core 2.1中添加自定义TagHelpers - c#

我严格按照ASP.NET Core文档进行操作,并花费了大量时间来拖曳堆栈溢出,试图实现简单的自定义TagHelper,但没有成功。任何人都可以就任何陷阱或已知错误提出建议吗?应用程序属性:AssemblyName: AmpWeb Target Framework .NET Core 2.1 NuGet软件包Microsoft.AspNetCore.All …

asp.net:treeview-显示文本框是否选中? - c#

我需要向用户显示字符串列表。用户可以选择多个字符串。如果选择了一组特定的字符串,则每个字符串旁边都会出现一个文本框。我想做的是向用户显示一个TREEVIEW,每个节点都是字符串之一。他们将通过选中复选框来选择所需的每个字符串。问题:如果用户选择特定的复选框,则我需要一个文本框来显示用户的GET输入。问题:如何从用户使用树形视图获取字符串输入? 参考方案 Tr…

ASP.NET-如何更改JSON序列化的方式? - javascript

我正在使用ASP.NET通过以下查询返回Json文件:public ActionResult getTransactionTotals(int itemID) { DBEntities db = new DBEntities(); var query = from trans in db.Transactions // Linq query removed …

如何在ASP.NET Core Web应用程序中增加JSON反序列化MaxDepth限制 - c#

我们正在将ASP.NET Core 2.1与.NET Framework 4.6.2结合使用。我们有一个客户需要向我们的Web应用程序发送一个很大程度上嵌套的json结构。当他们进行此调用时,我们将输出以下日志并返回错误: 读取器的MaxDepth超过了32。路径“ super.long.path.to property”,第1行,位置42111。”我浏览了…

Asp.Net:在服务器端还原DropDownList的客户端SelectedItem - c#

因此,我的页面上有一个dropDownList,其中包含数百个项目。用户可以通过在文本框中键入一些文本来过滤此DDL。然后对DDL进行相应的过滤(所有不包含输入文本的项目都将通过JavaScript删除)。然后,用户选择他的项目并按下按钮。通常,这将导致错误,因为DDL已更改并且ASP验证了PostBack数据。但是,使用EnableEventValidat…