【问题标题】:User Control Equivalent in ASP.NET MVC 4ASP.NET MVC 4 中的等效用户控件
【发布时间】:2012-10-03 17:52:30
【问题描述】:

我正在开发一个新的 ASP.NET MVC 4 应用程序。我真的在尝试以“MVC”的方式做事。特别是,我对使用 Razor 视图引擎很感兴趣。请注意,我来自网络表单背景,所以我的问题可能看起来很尴尬。

我正在尝试了解是否有与 MVC 中的用户控件等效的东西?如果有,它们叫什么?如果不是,在 MVC 中创建可重用组件的推荐方法是什么?

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    您正在寻找@Html.Action@Html.Partial

    它们允许您在视图中渲染partial view 或完整的controller action。这是 MVC 领域中常见的重用模式。

    如果控制器操作过于繁重,有时您会想要创建displayFor or editorFor templates。经验法则是,如果您需要在页面上多次执行并且需要以表单形式回发,请考虑在模板中执行。

    asp.net 中的控件涵盖了相当大的范围,MVC 将其细化了一点。

    【讨论】:

      【解决方案2】:

      要在 MVC 中创建可重用的 HTML 组件,您可以在 Views/Shared 文件夹中创建局部视图,并使用 @HTML.Partial("_PartialViewName") 将其包含在任何其他视图或局部视图中。您可以在此article 中找到有关部分视图的更多信息。

      【讨论】:

      • 您实际上可以在任何地方创建局部;您在那里使用的“短”语法将搜索当前文件夹和Shared 文件夹。完整的应用相对路径可以从任何地方加载(事实上,甚至不仅仅是在Views 文件夹中)
      • @AndrewBarber,您可以通过代码示例对此进行扩展吗?使用应用相对路径会是什么样子?
      • @eric @Html.Partial("~/OtherDir/File.cshtml");
      【解决方案3】:

      你可以试试:

      • 在共享文件夹中添加查看开始_ViewStart.cshtml
      • 使布局为空(如果需要)@{ Layout = null; }
      • 在您想要的地方拨打此页面@Html.Partial("_ViewStart")

      【讨论】:

        猜你喜欢
        • 2010-11-28
        • 1970-01-01
        • 2014-06-09
        • 2010-09-06
        • 2010-09-06
        • 1970-01-01
        • 2014-09-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多