【问题标题】:razor view a lone and inside another razor view, what is the best practice?剃刀视图一个单独的和另一个剃刀视图内部,最佳实践是什么?
【发布时间】:2015-01-21 11:20:58
【问题描述】:

我目前正在开发一个 ASP.Net MVC 项目,并且正在使用剃刀视图。 我有一个控制器的动作;说有自己的剃刀观点的动作A;说视图A。

另外,我还有另一个控制器的动作;动作B,并有自己的锋芒毕露;视图 B。

现在,我想在剃刀视图 B 中放置剃刀视图 A;而不是将所有视图A的内容复制到视图B中,避免重复代码。

你有什么建议?

任何想法都将不胜感激。

【问题讨论】:

  • 考虑使用部分视图(使用@Html.Partial()@Html.Action())来处理跨多个视图重复的内容。

标签: asp.net-mvc razor


【解决方案1】:

B.cshtml内部调用

@Html.Partial("A.cshtml", modelForA)

【讨论】:

  • 感谢 james 的回复,但我有模型 A 用于视图 A,还有另一个模型 B,其中包含模型 A。那么共享视图的模型应该是什么?
  • @MarwaAhmad modelB.modelA
  • James,那么共享视图模型将是:@model ModelA@model ModelB P.S:如果我通过了 ModelA,那么当我发布数据到动作 B 那么模型 B 数据将不存在!我应该发送整个父级,即模型 B。如果我使共享视图是 ModelB,那么 ActionA 应该向该共享视图发送额外的数据,而不仅仅是 ModelA。有我吗?
  • @MarwaAhmad 我不确定你为什么会觉得这很混乱。 A.cshtml 的模型保持为ModelAB.cshtml 的模型保持为ModelBinside B.cshtml 你会通过ModelA(正如你所说的ModelB 包括@ 987654331@) 向下进入部分方法。
【解决方案2】:

如果没有模型可以通过则在B.cshtml调用内部(不需要.cshtml)

@Html.Partial("A")

带模型

@Html.Partial("A", @Model.SubModel)

【讨论】:

  • 感谢 Manoj 的回复,但我有两种不同的型号。
  • 你从哪里得到这些模型的。父模型?然后只需传递整个父模型
  • 是 Manoj,那么共享视图模型将是:@model ModelA 或@model ModelB 附注:如果我传递了 ModelA,那么当我将数据发布到操作 B 时,模型 B 数据将不存在!我应该发送整个父级,即模型 B。如果我使共享视图是 ModelB,那么 ActionA 应该向该共享视图发送额外的数据,而不仅仅是 ModelA。有我吗?
  • 听起来您需要一个可以容纳多个模型的包装模型,然后您可以使用单个模型来克服这些问题。
猜你喜欢
  • 1970-01-01
  • 2011-10-10
  • 2018-10-30
  • 1970-01-01
  • 1970-01-01
  • 2014-03-26
  • 1970-01-01
  • 2011-11-01
  • 1970-01-01
相关资源
最近更新 更多