2

親コントローラーからリダイレクトする方法を知っています。

public class _ParentController : Controller {  
    ...
}

public class HomeController : _ParentController {  
    ...
}

にメソッドを追加できます_ParentController

protected override void OnActionExecuting(ActionExecutingContext filterContext) {
    if (condition) {
        filterContext.Result = Redirect(path);
    }
}

ここで、ビューを返すか、Server.Transfer を実行する必要があります (URL を保持する必要があります)。Server.TransferRequestこの場合、私にはうまくいきません。必要なことを行う他の方法はありますか? .NET MVC3 と IIS7.5 を使用しています

ありがとう。

4

2 に答える 2

2

たとえば、次のことができます。

protected override void OnException(ExceptionContext filterContext)
{
    base.OnException(filterContext);
    if (((filterContext.Exception is SecurityException)) ||
        ((filterContext.Exception is AuthenticationException)))
    {
        filterContext.ExceptionHandled = true;

        filterContext.Result = View("Error", "You don't have permission");
    }
}

これにより、アクションの結果が選択したビューに設定され、現在の URL が保持されます。(現在のルートに応じたフォルダーまたは共有フォルダーでビューを見つける必要があることに注意してください)

filterContext.Result = View("Name of view", "object model")';
于 2013-01-24T10:52:53.997 に答える
1

試しましたか

filterContext.Result = View(someParameter);
于 2013-01-24T10:55:11.460 に答える