控制器中的ASP.NET Core MVC子操作

时间:2018-12-31 14:23:07

标签: c# asp.net-core asp.net-core-mvc

我有一个带有Users方法的管理控制器。我想在此方法中添加带有新视图的“新”子动作。该网址应如下所示:/ administration / users / new

我该怎么做?

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

这实际上只是有关路由的问题。只需在管理控制器中添加一个方法,并使用Route属性告诉MVC路由是什么。例如:

public class AdministrationController : Controller
{
    public ActionResult Users()
    {
    }

    [Route("users/new")] //This is the important part here
    public ActionResult NewUser()
    {
    }
}

您还可以在Startup.cs类中配置路由,但是我发现使用属性路由更容易。有关更多信息,请参见here

答案 1 :(得分:0)

您可以使用几种方法来做到这一点 Routes at .net core

尝试属性

[Route("users/new")]
public IActionResult New()
{
    return View();
}

答案 2 :(得分:0)

我猜你的意思是“区域”。

因此,在Asp.Net Core 2路由中,存在区域,存在控制器,行为和可选参数。

您可以将路由中间件配置为类似内容。您可以在控制器上指定区域属性。

管理员将是区域-用户将是控制器,新将是操作。 这应该使代码保持干净,因为它仅使用默认的路由中间件。

要更好地了解区域,请参阅:https://tahirnaushad.com/2017/08/25/asp-net-core-2-0-mvc-areas/

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "areaRoute",
        template: "{area:exists}/{controller=dashboard}/{action=index}/{id?}"
    );

    routes.MapRoute(
        name: "default",
        template: "{controller=home}/{action=index}/{id?}"
);