将模型传递给 _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 :)
感谢那些花时间搜索的人
我希望能够将模型传递到我的基本布局 _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 :)
感谢那些花时间搜索的人