【问题标题】:How to Write Get Action for layout如何为布局编写获取操作
【发布时间】:2014-11-21 09:25:31
【问题描述】:

我有布局_PageLayout。 我想将一些模型传递给可以从会话中可用的上下文生成的布局 _PageLayout。 所以我想为布局_PageLayout编写Get Action。

【问题讨论】:

  • 布局页面没有任何httpget或httppost控制器动作..如果你想在布局页面上显示一些动态数据..那么你可以使用ajax调用..
  • 不清楚你想要实现什么。您是在问如何将模型对象传递给布局页面?为什么你认为你需要为布局定义一个动作方法?
  • Kartikeya - 我可以从那里进行 ajax 调用,来自布局的 window.load 事件。 SBirthare - 因为布局已经被很多视图使用。所以我不能在布局所需的每个视图模型中添加 1 个属性。
  • window.load$(document).ready() 并确保您的项目中包含 jquery。
  • @HemantMalpote - 如果您在问题本身中包含警告,那就太好了。其他可能不读 cmets 的读者将受益。

标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4


【解决方案1】:

您不能像将模型传递到视图页面一样将模型传递到布局页面。

在布局页面中,您可以调用子操作方法来检索您需要的内容,而不是将模型传递给布局。

例如:

_PageLayout.cshtml 页面中,您可以包括对child action 的调用,如下所示:

@Html.Action("MyChildActionName", "MyActionName")

然后你可以在适当的控制器中定义一个子动作如下:

[ChildActionOnly]
public ViewResult MyChildActionName()
{
    var viewModel = //define view model with the contents from your session value here
    return View(viewModel);  //This should return a view that will be rendered within the calling View page
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 2019-11-20
    • 2020-11-07
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    相关资源
    最近更新 更多