从razor页面调用方法



我有一个asp.net core mvc项目。

在我的布局文件中,我想要显示当前登录用户的名称,这样用户名就会显示在标题中。对于这个,我希望能够在我的home控制器中调用一个做这个的函数。因此,我在home控制器中创建了一个像这样的简单函数:

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

然后我尝试了所有我能找到的方法。这里的前两个方法只是网络上建议的函数,我根本无法使用:

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

等等。然后是这个,我可以找到:

@Html.ActionLink("GetLoggedInuser")

但是对于这个,我的函数"GetLoggedInuser"到处都找不到

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

如果您使用Microsoft.AspNet.Identity线以下将做这项工作后登录。

@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>
}