J'ai 2 questions.Comment obtenir le nom du contrôleur et les données disponibles dans un contrôleur de base?
En premier lieu, fond:
J'ai un PageController : Controller
et SearchController : PageController
PageController est défini comme:
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);
}
}
J'ai site & PageConfiguration stocké dans PageController parce que chaque page qui implémente besoins PageController les
Question 1:
J'essaye de porter ceci à partir d'une application existante d'ASP.NET. cela nécessite un nom de page pour obtenir l'objet PageConfiguration. Au lieu d'un nom de page, je vais utiliser le nom du contrôleur à la place. Quelle est la meilleure façon pour moi d'obtenir cela comme une chaîne?
Question 2:
J'essaie de rendre une PartialView qui repose sur ces données, comme suit:
<%@ 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>
Je peux voir que lorsque la méthode RenderPartial() est appelée le modèle PageConfiguration a le Panel dont j'ai besoin. Mais dans le constructeur de la classe Search, PanelConfiguration est null.
Y a-t-il un meilleur & meilleur moyen de rendre les données dont j'ai besoin pour la page disponible? Merci.
Pouvez-vous montrer comment vous définissez Panel? –
Le panneau est défini lorsque l'objet PageConfiguration est créé. – DaveDev