然后在页面中您可以呈现用户控件: 但是我想在 ViewPage 中呈现 ViewPage。原因?我正-6ren">
gpt4 book ai didi

c# - 在 ViewPage 中呈现的 ASP.NET MVC ViewPage

转载 作者:太空宇宙 更新时间:2023-11-03 14:32:26 25 4
gpt4 key购买 nike

我想知道是否可以在 ViewPage 内部呈现 ViewPage。

通常,你会有这样的:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<my_object>"%>

然后在页面中您可以呈现用户控件:

<%Html.RenderPartial("~/Views/Shared/mycontrol.ascx", this.ViewData);%>

但是我想在 ViewPage 中呈现 ViewPage。原因?我正在从事一个非常大的项目,该项目有 10 多个开发人员并且已经编写了很多代码。已经编写了一大篇动态呈现 UI 的文章,但是有 15 种以上的方法传递 ViewPage。

换句话说,我在 ViewPage 中调用它:

<%this.RenderUI();

方法 stub 是这样的:

public static void RenderUI(this ViewPage viewPage)

因此,为了重用最多的代码,我想将对 this.RenderUI() 的调用拉到它自己的 ViewPage 中,然后将其包含在某些 ViewPage 中。这是一个毛茸茸的情况,听起来没有必要,但有很多代码返工,否则就需要完成。有谁知道这是否可以实现?

最佳答案

使用 RenderAction() 而不是 RenderPartial() 在主视图中呈现您的 subview 。这允许您为每个 subview 保留您的 Controller 和 View ,并将每个 Controller / subview 组合的输出“注入(inject)”到任何主视图中,在主视图中您选择的位置。

这种安排应该可以减轻管理每个 View 和 subview 的一些复杂性。这种方法让人想起传统 ASP.NET 或 SharePoint 中的“Web 部件”。这是一种更加模块化的方法,可提供更好的可重用性。

关于c# - 在 ViewPage 中呈现的 ASP.NET MVC ViewPage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2292851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com