将模型传递给 _Layout.cshtml(webapp 版本)

Passing model to _Layout.cshtml (webapp version)

我希望能够将模型传递到我的基本布局 _layout.cshtml,就像 example 中一样。问题是这个例子只对 MVC 框架有效,我使用没有 MVC 的 razor 页面。

我看到我们可以在继承自 PageModel 的 class 中覆盖 Page() 方法,但我有无法在创建视图时提供模型的印象。

public class IndexModel : PageModel {
    public override PageResult Page() {
        return base.Page();  // how to pass a custom model?
    }
}

如果有人有任何想法或其他方法,我就是一个索取者。谢谢:)

您上面提到的 example 是一个更简单、更整洁的解决方案。从架构的角度来看,它是可扩展和可维护的。这是这样做的正确方法。它也被简单地描述了。我不知道你的问题是什么。

顺便说一句,如果您使用的是 .NET Core,您还可以考虑在布局中使用依赖注入:

@inject UserManager<ApplicationUser> UserManager

不知道以前怎么没想到。这是对 PageModel 的简单继承,您的绑定属性在您的 _layout 和最终页面中可用。无需像 MVC 框架那样创建视图或使用泛型。

这是非常 simple solution :)

感谢那些花时间搜索的人