-5

我需要从 ControllerContext 类中获取我的视图模型。我需要阅读 viewmodel ControllerContext 的一些属性。我怎样才能做到这一点??

using System;
using System.Web;
using System.Web.Routing;
using System.Web.WebPages;

namespace System.Web.Mvc
{
    // Summary:
    //     Encapsulates information about an HTTP request that matches specified System.Web.Routing.RouteBase
    //     and System.Web.Mvc.ControllerBase instances.
    public class ControllerContext
    {
        // Summary:
        //     Initializes a new instance of the System.Web.Mvc.ControllerContext class.
        public ControllerContext();
        //
        // Summary:
        //     Initializes a new instance of the System.Web.Mvc.ControllerContext class
        //     by using the specified controller context.
        //
        // Parameters:
        //   controllerContext:
        //     The controller context.
        //
        // Exceptions:
        //   System.ArgumentNullException:
        //     The controllerContext parameter is null.
        protected ControllerContext(ControllerContext controllerContext);
        //
        // Summary:
        //     Initializes a new instance of the System.Web.Mvc.ControllerContext class
        //     by using the specified request context and controller.
        //
        // Parameters:
        //   requestContext:
        //     The request context.
        //
        //   controller:
        //     The controller.
        //
        // Exceptions:
        //   System.ArgumentNullException:
        //     One or both parameters are null.
        public ControllerContext(RequestContext requestContext, ControllerBase controller);
        //
        // Summary:
        //     Initializes a new instance of the System.Web.Mvc.ControllerContext class
        //     by using the specified HTTP context, URL route data, and controller.
        //
        // Parameters:
        //   httpContext:
        //     The HTTP context.
        //
        //   routeData:
        //     The route data.
        //
        //   controller:
        //     The controller.
        public ControllerContext(HttpContextBase httpContext, RouteData routeData, ControllerBase controller);

        // Summary:
        //     Gets or sets the controller.
        //
        // Returns:
        //     The controller.
        public virtual ControllerBase Controller { get; set; }
        //
        // Summary:
        //     Gets the display mode.
        //
        // Returns:
        //     The display mode.
        public IDisplayMode DisplayMode { get; set; }
        //
        // Summary:
        //     Gets or sets the HTTP context.
        //
        // Returns:
        //     The HTTP context.
        public virtual HttpContextBase HttpContext { get; set; }
        //
        // Summary:
        //     Gets a value that indicates whether the associated action method is a child
        //     action.
        //
        // Returns:
        //     true if the associated action method is a child action; otherwise, false.
        public virtual bool IsChildAction { get; }
        //
        // Summary:
        //     Gets an object that contains the view context information for the parent
        //     action method.
        //
        // Returns:
        //     An object that contains the view context information for the parent action
        //     method.
        public ViewContext ParentActionViewContext { get; }
        //
        // Summary:
        //     Gets or sets the request context.
        //
        // Returns:
        //     The request context.
        public RequestContext RequestContext { get; set; }
        //
        // Summary:
        //     Gets or sets the URL route data.
        //
        // Returns:
        //     The URL route data.
        public virtual RouteData RouteData { get; set; }
    }
}
4

2 回答 2

2

尝试:

ControllerContext.Controller.ViewData.Model

目前尚不清楚您何时需要从上下文中获取该数据,但您必须意识到ViewModel返回到的View仅在OnResultExecuting事件之后可用(同样的方法ActionFilter)。

于 2013-07-30T14:35:55.437 回答
0

假设我理解了这个问题,您可以使用ControllerContext点符号访问 的属性:

ControllerContext.<PropertyName>
于 2013-07-30T14:33:34.373 回答