从controllerContext MVC获取viewModel

时间:2013-07-30 14:26:40

标签: c# asp.net-mvc system.reflection

我需要从类ControllerContext获取我的viewmodel。我需要阅读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; }
    }
}

2 个答案:

答案 0 :(得分:2)

尝试:

ControllerContext.Controller.ViewData.Model

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

答案 1 :(得分:0)

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

ControllerContext.<PropertyName>