【发布时间】:2012-10-03 17:52:30
【问题描述】:
我正在开发一个新的 ASP.NET MVC 4 应用程序。我真的在尝试以“MVC”的方式做事。特别是,我对使用 Razor 视图引擎很感兴趣。请注意,我来自网络表单背景,所以我的问题可能看起来很尴尬。
我正在尝试了解是否有与 MVC 中的用户控件等效的东西?如果有,它们叫什么?如果不是,在 MVC 中创建可重用组件的推荐方法是什么?
【问题讨论】:
标签: asp.net-mvc
我正在开发一个新的 ASP.NET MVC 4 应用程序。我真的在尝试以“MVC”的方式做事。特别是,我对使用 Razor 视图引擎很感兴趣。请注意,我来自网络表单背景,所以我的问题可能看起来很尴尬。
我正在尝试了解是否有与 MVC 中的用户控件等效的东西?如果有,它们叫什么?如果不是,在 MVC 中创建可重用组件的推荐方法是什么?
【问题讨论】:
标签: asp.net-mvc
您正在寻找@Html.Action 和@Html.Partial。
它们允许您在视图中渲染partial view 或完整的controller action。这是 MVC 领域中常见的重用模式。
如果控制器操作过于繁重,有时您会想要创建displayFor or editorFor templates。经验法则是,如果您需要在页面上多次执行并且需要以表单形式回发,请考虑在模板中执行。
asp.net 中的控件涵盖了相当大的范围,MVC 将其细化了一点。
【讨论】:
要在 MVC 中创建可重用的 HTML 组件,您可以在 Views/Shared 文件夹中创建局部视图,并使用 @HTML.Partial("_PartialViewName") 将其包含在任何其他视图或局部视图中。您可以在此article 中找到有关部分视图的更多信息。
【讨论】:
Shared 文件夹。完整的应用相对路径可以从任何地方加载(事实上,甚至不仅仅是在Views 文件夹中)
@Html.Partial("~/OtherDir/File.cshtml");
你可以试试:
_ViewStart.cshtml
@{ Layout = null; }
@Html.Partial("_ViewStart")
【讨论】: