我有两个问题。
首先,背景信息:
我有一个PageController : 控制器(Controller)
和一个 SearchController : PageController
PageController 定义如下:
public class PageController : Controller
{
protected ISite Site;
protected PageConfiguration PageConfiguration;
protected override void Initialize(RequestContext rc)
{
this.Site = new Site(SessionUser.Instance().SiteId);
this.PageConfiguration = this.Site.CurrentSite.GetPage(/* controller name */);
base.Initialize(rc);
}
}
我将Site和PageConfiguration存储在PageController中,因为每个实现PageController的页面都需要它们。
问题1: 我正在尝试从现有的ASP.NET应用程序进行移植。该应用程序需要一个页面名称来获取PageConfiguration对象。我将使用控制器名称代替页面名称。最好的方法是什么,可以将其作为字符串获取?
问题2: 我正在尝试呈现依赖于该数据的PartialView,如下所示:
<%@ Page Title=""
Language="C#"
MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<PageConfiguration>" %>
<%@ Import Namespace="tstFactsheetGenerator.Models.Panels"%>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% Html.RenderPartial("Search", new Search { PanelConfiguration = Model.Panels[0] }); %>
</asp:Content>
我看到当RenderPartial()方法被调用时,PageConfiguration模型有我需要的面板。但在Search类的构造函数中,PanelConfiguration为null。
有没有更好、更有效的方法使我需要的页面数据可用?谢谢。