I had same situation like Doug described above
我的解決辦法: 1)創建的自定義控制器廠。需要在我的自定義https屬性中獲取ControllerContext。
public class CustomControllerFactory : DefaultControllerFactory
{
public override IController CreateController(RequestContext requestContext, string controllerName)
{
var controller = base.CreateController(requestContext, controllerName);
HttpContext.Current.Items["controllerInstance"] = controller;
return controller;
}
}
}
2)從Global.asax文件的Application_Start函數接下來寫道:
ControllerBuilder.Current.SetControllerFactory(new CustomControllerFactory());
3)定義的自定義屬性的https:
public class CustomRequireHttpsAttribute : System.Web.Mvc.RequireHttpsAttribute
{
public bool RequireSecure = false;
public override void OnAuthorization(System.Web.Mvc.AuthorizationContext filterContext)
{
if (RequireSecure && !((Controller)HttpContext.Current.Items["controllerInstance"]).ControllerContext.IsChildAction)
{
base.OnAuthorization(filterContext);
}
}
}
4)使用新屬性帳戶的定義控制器: [CustomRequireHttps]
,你可以看看這個問題http://stackoverflow.com/questions/2056421/why-are-redirect-results-not -allow-in-child-actions-in-asp-net-mvc-2 – Tassadaque
你打算今天問這個問題多少次?可能重複[執行處理程序的子請求錯誤](http://stackoverflow.com/questions/8924177/error-executing-child-request-for-handler) –