#asp.net #.net #asp.net-mvc #asp.net-core #razor-pages
Вопрос:
У меня есть asp.net основной проект mvc.
В моем файле макета я хочу отобразить имя текущего пользователя, вошедшего в систему, таким образом, чтобы имя пользователя отображалось в заголовке. Для этого я хочу иметь возможность вызывать функцию в моем домашнем контроллере, которая делает это. Итак, я сделал простую функцию, которая выглядит так в домашнем контроллере:
public String GetLoggedInuser()
{
return "garse garsebro";
}
И тогда я испробовал все методы, которые смог найти. Первые пару методов здесь-это просто функции, предлагаемые в Интернете, которые мне просто недоступны:
@HtmlHelper.Action("GetLoggedInuser");
@Html.RenderAction("GetLoggedInuser");
И это лишь некоторые из них. Тогда есть вот это, которое я могу найти:
@Html.ActionLink("GetLoggedInuser")
Но для этого моя функция «GetLoggedInuser» нигде не может быть найдена.
Как вы на странице razor вызываете функцию контроллера, чтобы вы могли получить возвращенную строку из этой функции и отобразить ее?
Комментарии:
1. Для чего это вам нужно ? вы должны показать свою страницу макета, модель страницы бритвы и так далее.
2. Я немного не уверен в вопросе? Мне нужно использовать его для отображения имени пользователя, вошедшего в систему, в верхнем левом заголовке. Я не хочу просто передавать ему модель, потому что есть несколько контроллеров и действий, которые должны ее визуализировать. В противном случае мне понадобилось бы, чтобы все модели, которые возвращаются, содержали текущее имя пользователя, вошедшего в систему
Ответ №1:
Если вы используете Microsoft.АспНет.Удостоверение личности, то ниже строки будет выполнять работу после входа в систему.
@Html.ActionLink("Hello " User.Identity.GetUserName() "!", "Index", "Manage", routeValues: null, htmlAttributes: new { title = "Manage" })
Комментарии:
1. Я боюсь, что я не 🙁
2. Я использую linux, и настройка для этого оказалась безумной
Ответ №2:
Вы можете попробовать использовать ajax для вызова действия,чтобы получить имя пользователя и добавить его в html:
<div id="username">
</div>
@section scripts
{
<script>
$(function () {
$.ajax({
type: "GET",
url: 'GetLoggedInuser',
}).done(function (result) {
$("#username").html(result);
});
})
</script>
}