【发布时间】:2018-11-06 13:52:36
【问题描述】:
是否可以设置渲染视图的执行顺序?
假设我有一个在布局中呈现的视图,但它需要在所有其他视图之后最后呈现。 (但它不在布局的底部)
布局
<html>
<body>
...
@Html.Action("Index", "Test1")
@Html.Action("Index", "Test2")
...
</body>
</html>
控制器
public class Test1Controller: Controller
{
private readonly PassedAround _passedAround;
public Test1Controller(PassedAround passedAround){
_passedAround = passedAround;
}
public ActionResult Index(){
return View(_passedAround);
}
}
public class Test2Controller: Controller
{
private readonly PassedAround _passedAround;
public Test1Controller(PassedAround passedAround){
_passedAround = passedAround;
}
public ActionResult Index(){
_passedAround.Whatever = 1;
return View();
}
}
查看(Test1Controller - 索引)
...
@Html.Raw(Model.Whatever)
...
在上面的示例中,PassedAround.Whatever 的值是在渲染 Test1Controller-Index 之后设置的。
【问题讨论】:
-
似乎是XY Problem 的情况,因为您的问题似乎仍然不合逻辑(对我来说)....您要完成什么?你能分享你的布局以及你想用它做什么吗?
-
这不合逻辑。客户端要求我在请求期间传递一个对象,并且“有时”根据我们所在的(部分)控制器更改它。在执行所有控制器之后,应该呈现最后一个视图,具体取决于所有以前的控制器.这样做不是我的想法......但我只需要知道是否有可能......如果可以,如何。
-
您确实需要包含一些示例代码,以便任何人都能理解您的意思。发布 Minimal, Complete, and Verifiable example (MCVE) 来证明您的问题将帮助您获得更好的答案。
标签: asp.net-mvc view controller action