剃刀页面和服务器方法

Posted

技术标签:

【中文标题】剃刀页面和服务器方法【英文标题】:razor pages and server methods 【发布时间】:2019-01-30 02:05:38 【问题描述】:

我对如何在 razor 页面中调用或创建服务器/控制器方法感到困惑。当我做 MVC 时,我会在控制器中创建方法并使用锚标记来调用它:

<a href="/Security/LogOut/">

如何在 razor 页面中执行此操作?我最终创建了一个新页面名称“SignOut”并在 OnGet 中实现了登录,并使用了这样的锚标记:

<a href="/SignOut">

如果我想在一个文件中组合多个操作方法怎么办?我需要为每个操作创建一个页面吗?

【问题讨论】:

@Url.Action("Action", "Controller") 可能是您要查找的内容,但要准确理解您的要求有点困难。您可能会对这篇 SO 帖子感兴趣***.com/questions/7709001/… 没有。那是旧的 MVC 东西。我指的是 Core 2.1 / Razor Pages ***.com/questions/47767851/url-action-in-asp-net-core 【参考方案1】:

您可能早就找到了您正在寻找的答案。对于看到此问题的其他人,您可以使用:

<a asp-page="/SignOut">Sign Out</a>

对于 Razor Pages,GETPOST 方法由每个代码隐藏文件处理。例如,对于 Razor 页面Details.cshtml,有一个名为Details.cshtml.cs 的代码隐藏文件,它定义了OnPostAsyncOnGetAsync,它们分别处理POSTGET 请求。有关详细信息,请参阅:

Microsoft Razor Pages Tutorial

【讨论】:

以上是关于剃刀页面和服务器方法的主要内容,如果未能解决你的问题,请参考以下文章

如何将剃刀页面包含在另一个剃刀页面中?

使用剃须刀页面调用服务器方法而无需重新加载页面

是否可以将单个MVC剃刀视图/页面转换为SPA?

剃刀页面是不是位于 mvc 层之上?

如何从我的视图的 javascript 访问我的代码隐藏文件中的 JsonResult 变量?剃刀页面。 C#

布局中的表单:剃刀页面