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

标签 c# asp.net-mvc renderpartial viewpage

我想知道是否可以在 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/

相关文章:

c# - System.Data.DataTable 的轻量级替换

c# - .net 世界中的 EDI 等价物

c# - Jquery 发布到 ASP.NET API Controller

asp.net-mvc - 带有相对路径的 ASP.Net MVC 和 RenderPartial

jquery-ui - Dotnetnuke 部分渲染使我的 jQueryUI 小部件停止工作

c# - 如何从Unity3d和C#中的另一个脚本访问在单例类中创建的列表

javascript - 获取html数据属性字符串甚至其值 bool 值

asp.net-mvc - 如何在没有表单例份验证的虚拟目录中公开 WCF 服务?

jquery - rails : how to update a has_many :through relation via jQuery?

c# - ViewModel 与 Model 有不同的字段吗?