Asp.net mvc 3 如何从控制器上下文中找出它是视图还是局部视图?

Asp.net mvc 3 如何从控制器上下文中找出它是视图还是局部视图?,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我想知道我的观点是错误的还是片面的。或者一般来说,我们如何从控制器上下文中找出堆栈是its视图还是部分视图。获取堆栈跟踪,并尝试从中处理错误所在的位置。如果您需要在代码中执行此操作,您可能会使用StackTrace类或异常中的StackTrace(如果您正在捕获) 可以按如下方式处理堆栈跟踪: var stackTrace = new StackTrace(true); foreach (var r in stackTrace.GetFrames()) {

我想知道我的观点是错误的还是片面的。或者一般来说,我们如何从控制器上下文中找出堆栈是its视图还是部分视图。

获取堆栈跟踪,并尝试从中处理错误所在的位置。如果您需要在代码中执行此操作,您可能会使用StackTrace类或异常中的StackTrace(如果您正在捕获)

可以按如下方式处理堆栈跟踪:

var stackTrace = new StackTrace(true);
        foreach (var r in stackTrace.GetFrames())
        {
            Console.WriteLine("Filename: {0} Method: {1} Line: {2} Column: {3}  ",
                r.GetFileName(),r.GetMethod(), r.GetFileLineNumber(),
                r.GetFileColumnNumber() );
        }

您可以查看fileName属性是否与部分类文件匹配。

您可以做的最好的事情是从控制器向ViewBag.isPartial添加一个bool

如果你真的想成为MVC的一员,你总是想使用持有者来获取这些信息,而且永远不会在视图端发现它们

另外,通常将同一视图用作局部视图和主视图都不是一个好主意。这意味着你没有很好地考虑到它所扮演的角色


这种类似设置最常见的用途是更改布局,即:对于移动设备、web等,

嘿,调试时不需要这样做。我需要知道如何有效地处理错误。