从剃须刀页面调用方法

Calling method from razor page

我有一个 asp.net 核心 mvc 项目。

在我的布局文件中,我想显示当前登录用户的名称,这样用户名就显示在header中。为此,我希望能够在我的家庭控制器中调用一个函数来执行此操作。 所以,我在家庭控制器中做了一个看起来像这样的简单函数:

    public String GetLoggedInuser()
    {
        return "garse garsebro";
    }

然后我尝试了所有我能找到的方法。这里的前几个方法只是网络上推荐的功能,我根本无法使用:

@HtmlHelper.Action("GetLoggedInuser");
@Html.RenderAction("GetLoggedInuser");

仅举几例。然后是这个,我能找到:

 @Html.ActionLink("GetLoggedInuser")

但是对于这个,我的函数“GetLoggedInuser”在任何地方都找不到。

如何在 razor 页面中调用一个控制器函数,您可以从该函数返回一个字符串并显示它?

如果您使用的是 Microsoft.AspNet.Identity 那么下面的行将执行 post 登录。

@Html.ActionLink("Hello " + User.Identity.GetUserName() + "!", "Index", "Manage", routeValues: null, htmlAttributes: new { title = "Manage" })

你可以尝试使用ajax调用action获取用户名,添加到html:

<div id="username">

</div>
@section scripts
{

    <script>
        $(function () {
            $.ajax({
                type: "GET",
                url: 'GetLoggedInuser',
            }).done(function (result) {
                $("#username").html(result);
            });
        })
    </script>
}