Я занимаюсь разработкой нового приложения asp.net.До сих пор я разработал вид компоновки с панелью навигации и нижним колонтитулом, домашней страницей и страницей входа, и все это отлично работает.Теперь после успешного входа в систему я хочу изменить кнопку входа в систему на панели навигации, чтобы выйти из нее.Для этого мне нужно получить доступ к элементам управления макета на странице входа, но я не могу.Я перепробовал множество решений от Stack Overflow для этой проблемы, но, к сожалению, у меня ничего не получалось.
В качестве первого шага я создал класс модели и контроллер для представления макета, чтобы получить доступ к элементам управления представления макета на другой странице, но не могу получить доступ к свойству модели в макете.посмотреть сам.
Модель макета:
public class _LayoutModels
{
private string btnName = "Login";
public string loginBtnName
{
get
{
return btnName;
}
set
{
btnName = value;
}
}
}
Контроллер макета:
public class _LayoutController : Controller
{
// GET: _Layout
public ActionResult Index()
{
return View();
}
public ActionResult Index(_LayoutModels lm)
{
lm.loginBtnName = "Login";
ViewData["Message"] = lm;
return View();
}
}
И если я попытаюсь использовать это свойствов режиме компоновки выдается исключение нулевой ссылки.
Код представления макета:
@{
var data = (_LayoutModels)ViewData["Message"];
}
@Html.ActionLink(@data.loginBtnName, "Index", "Login", routeValues: null, htmlAttributes: new { id = "loginLink", @class = "nav-link" })
Надеюсь, я четко объяснил свою проблему.Я хочу получить доступ к элементам управления в представлении макета, чтобы я мог изменить его имя или функциональность в зависимости от имени входа.Если невозможно получить доступ к элементам управления в представлении макета, то как я могу это сделать?-Спасибо заранее.