问题
I am trying to use it for Login page.
if (Session["UserID"] == null)
Server.Transfer("/Account/Login", true);
But I get The Exception -> Error executing child request /Account/Login.
回答1:
To use a server transfer method you could look at this from Simon Weaver, but in the context of your question I would use a redirect action instead.
RedirectToAction(new {
controller="Account",
action="Login"
});
to get it to tell the login controller where to go back to try
RedirectToAction( new {
controller="Account",
action="Login",
new RouteValueDictionary {
{"actionToGoBackTo", "theActionName"},
{"controllerToGoBackTo", "theControllerName"}
});
note that the Login action will need to take two string arguments, actionToGoBackTo, and controllerToGoBackTo.
回答2:
You do this!
return new MVCTransferResult(...);
Please see my answer (linked) as well as the accepted answer.
回答3:
You should get the exactly same result as what you want in Server.Transfer.
public ActionResult Index() {
......
var url = "/MyContoller?param=xxx";
Server.TransferRequest(url, true);
return new EmptyResult();
}
来源:https://stackoverflow.com/questions/847232/how-do-i-use-server-transfer-method-in-asp-net-mvc