gpt4 book ai didi

asp.net - MVC4 上 _layout.cshtml 的@model?

转载 作者:行者123 更新时间:2023-12-02 02:18:35 26 4
gpt4 key购买 nike

我想知道是否有一种方法可以为 _layout.cshtml 文件指定一个模型,我见过很多帖子都有基本相同的问题,人们都用“替代”解决方案回复,但没有说这是不可能的,也没有展示如何实现我们完全可以实现这一点

有一些网络表单的经验,我一直在尝试迁移到 MVC,并且经常发现自己有这样的问题,我找到了这个网站:http://blog.bitdiff.com/2012/05/sharing-common-view-model-data-in.html这部分解决了我的问题,但即使他们也不将其 _layout.cshtml 与 @model 绑定(bind),据我所知,如果我想访问 SharedContext,我必须在每个 View 上指定一个模型,如果我是,请更正错误

我想做的是在 _layout.cshtml 上声明一个“@model Namespace.MyModel”,这样它就可以自己检索其信息,而不必为从 LayoutModel 继承的每个 View 实现一个模型

*我希望我说得清楚,基本上,我想知道如何在 _layout.cshtml 上声明 @model 标签,以便它可以访问自己的模型

使用我之前链接的解决方案(即使它没有链接到我的问题)我必须这样做:@(((BaseController)ViewContext.Controller).Context.Property) 来获取共享信息,如果我可以简单地声明(并使用)一个 @model,我可以通过执行以下操作来完成同样的事情:@Model。属性(property)*

如您所见,我正在努力将我已经知道的所有内容从 Webform 迁移到 MVC,这对我来说非常困难,因为我必须采用某些与我习惯的完全不同的实践

提前致谢

最佳答案

您应该使用部分 View 和 RenderAction 将布局中“需要模型”的部分委托(delegate)给单独的 Controller :

@Html.RenderAction("SomeAction", "LayoutController")

LayoutController.SomeAction 返回 PartialViewResult,然后您可以将其强类型化到模型中。

关于asp.net - MVC4 上 _layout.cshtml 的@model?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17868817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com