我有问题。我想从Visual Studio(C#)启动我的App的新实例。
它从http://localhost:54619/开始。问题在于,启动时,会在类Global.asax.cs的Application_BeginRequest()
方法中创建一个循环,而该循环永远不会消失。我尝试使用Response.RedirectToRoute("Default")
重定向它,但是它不起作用。我无法摆脱那种方法。
protected void Application_BeginRequest()
{
Response.Redirect("~/Principal");
}
我正在使用ASP.NET MVC,IIS Express。
答案 0 :(得分:1)
您的问题是,Application_BeginRequest()
的名称始终在您的应用程序收到请求时执行。然后,在该方法中,您响应客户端,应改为转到~/Principal
路径。当客户端收到此响应时,它将创建一个新请求,最终将获得相同的响应。您想将请求重定向到默认控制器。您应该通过注册到该控制器的路由来做到这一点。 ASP.NET的MVC模板为此提供了一个示例:
创建一个注册所需路线的函数
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
调用Global.asax.cs中的函数
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
现在,如果没有其他路由适合该请求,则您的应用程序应将用户重定向到名为“ Home”的控制器,并重定向至其操作“ Index”。