【发布时间】:2017-03-07 21:37:16
【问题描述】:
这是对我将部分视图传递给布局标题的方法的完整性检查。
在我的布局中,我为每个页面显示了一个导航按钮的位置。
使用该布局的视图模型,我可以将一串数据传递给布局并将其显示在该位置,没问题。
我目前正在构建要在局部视图中显示的导航,然后将其渲染为字符串并通过布局视图模型将其传递到布局中,一切正常。
这是将部分视图传递给布局的常用方法还是有更好的方法?
正如我所说,这工作得非常好,但是渲染 html 以通过字符串传递似乎有点骇人听闻。如果可能的话,能够原生地传递一个局部视图并让它在布局中呈现而不是传递 HTML 会很好。
感谢您提出的建议。
伯爵
【问题讨论】:
-
不,不是。为什么你不只是在布局中使用
Html.Partial("..."),或者如果你需要调用控制器方法来执行一些逻辑,那么Html.Action(...) -
如果你打算这样做,只需使用@Html.Partial...
-
通过模型将部分页面作为html字符串传递的原因是什么?你不能在你的布局页面中使用
Html.Partial()来渲染它吗? -
大家,谢谢你们的帮助。是的,这是完美的,我认为它会起作用。我确实需要调用局部视图操作,所以我需要使用@html.Action。我唯一的问题是我的每个局部视图操作都传递了不同的数据模型。我可以制作一个包含所有内容的超级模型,并将其传递给我想要在布局中呈现的所有局部视图操作,但这似乎很笨拙。如何使用这种技术将每个局部视图操作方法的确切数据模型传递给布局 html.action 助手?谢谢。
-
考虑了几分钟后,我有可能使用所有部分视图操作方法数据模型都继承自的基本接口。这个基本接口不需要它自己的任何属性,而是简单地用作载体,允许我将不同的模型传递给控制器动作,然后让它们在接收部分视图动作本身中转换回原始类型。只是一个想法。
标签: asp.net-mvc asp.net-mvc-partialview