MapRoute for Razor Pages

时间:2018-01-14 20:00:51

标签: asp.net-core asp.net-core-2.0 razor-pages

在ASP.NET MVC中,我们可以将URL映射到控制器,操作和参数。例如,以下MapRoute是ASP.NET MVC应用程序中使用的默认值。

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

这意味着如果我们有url“/ value1 / value2 / value3”,ASP.NET MVC将调用Value1控制器的操作Value2,Value3将用于id变量。我想用Razor Pages创建类似的东西。

我的场景过于复杂,所以我将尝试用一个简单的例子来解释它。 例如,我将有一个名为“/Pages/Article.cshtml”的页面,页面顶部有以下定义

@page "{articlefriendlyname}"

这意味着我可以使用以下格式调用文章页面

/Articles/do-something-article

在c#代码中,我将使用以下OnGet方法:

public void OnGet(string articlefriendlyname)
{

}

现在,我可以在我的网络应用程序上使用以下网址

/Article/do-something
/Articles/do-something-else

我希望在拥有以下网址时调用这些网址:

/do-something
/do-something-else

这意味着我想定义以下URL映射:

/{articlefriendlyname}      ==>     /Article/{articlefriendlyname}

我可以使用root index.cshtml并定义参数,这样我的URL中就不会有Article文字,但是根网页将用于不同的东西,所以我不能用它来显示文章网站。

我想我可以使用下面文章中描述的方法,但我还没有成功地使它工作。

https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages/razor-pages-convention-features

0 个答案:

没有答案