C# 将请求重定向到其他控制器

C# 将请求重定向到其他控制器,c#,asp.net-mvc,C#,Asp.net Mvc,我在布局页面中有一个按钮,它应该在不同的视图之间导航 <a id="next" href="/Navigation?CurrentPage=@ViewBag.CurrentPage">Next</a> 枚举按顺序包含ActionName,所以只需增加currentPageEnum值即可找到下一页 enum PageType { Page1, Page2 } 每个操作在Global.asax.cs中都有一个映射路径,如下所示- routes.MapRou

我在布局页面中有一个按钮,它应该在不同的视图之间导航

<a id="next" href="/Navigation?CurrentPage=@ViewBag.CurrentPage">Next</a>
枚举按顺序包含ActionName,所以只需增加currentPageEnum值即可找到下一页

enum PageType
{
    Page1,
    Page2
}
每个操作在Global.asax.cs中都有一个映射路径,如下所示-

routes.MapRoute("Page1", "Page1", new { controller="controller1", action="Page1"});
routes.MapRoute("Page2", "Page2", new { controller="controller2", action="Page2"});
问题: 我无法使用此代码重定向到其他控制器-

RedirectToAction(nextPageEnum.ToString()); 
请求在没有重定向的情况下终止

  • 我遗漏了什么信息
  • 有没有更有效的导航方式 在不同视图之间,在ASP MVC中

  • 谢谢

    添加return语句并使函数返回一些内容

    
    public class NavigationController : Controller
    {
        public ActionResult Index(string CurrentPage)
        {
            PageType currentPageEnum = (PageType)Enum.Parse(typeof(PageType), CurrentPage);
            PageType nextPageEnum = currentPageEnum + 1;
            return RedirectToAction(nextPageEnum.ToString());            
        }
    }
    
    但我建议,从(razor)视图在MVC环境中导航的最佳方式如下:

    <div>
        @Html.ActionLink(string linkText, string actionName)
    </div>
    
    
    @ActionLink(stringlinktext,stringactionname)
    
    如果操作在同一控制器中。如果不使用此重载:

    <div>
        @Html.ActionLink(string linkText, string actionName, string controllerName)
    </div>
    
    
    @ActionLink(stringlinktext、stringactionname、stringcontrollername)
    
    添加return语句并使函数返回一些内容

    
    public class NavigationController : Controller
    {
        public ActionResult Index(string CurrentPage)
        {
            PageType currentPageEnum = (PageType)Enum.Parse(typeof(PageType), CurrentPage);
            PageType nextPageEnum = currentPageEnum + 1;
            return RedirectToAction(nextPageEnum.ToString());            
        }
    }
    
    但我建议,从(razor)视图在MVC环境中导航的最佳方式如下:

    <div>
        @Html.ActionLink(string linkText, string actionName)
    </div>
    
    
    @ActionLink(stringlinktext,stringactionname)
    
    如果操作在同一控制器中。如果不使用此重载:

    <div>
        @Html.ActionLink(string linkText, string actionName, string controllerName)
    </div>
    
    
    @ActionLink(stringlinktext、stringactionname、stringcontrollername)
    
    是的,有一种有效的方法,如下所示:

    只用

       RedirectToAction("ACTION_NAME", "Controller_NAME");
    

    是的,有一种有效的方法,如下所示:

    只用

       RedirectToAction("ACTION_NAME", "Controller_NAME");
    

    谢谢,这很有帮助。这种方法是在MVC中实现导航的最佳方法吗。@autrevo我添加了从视图本身导航的最佳方法。谢谢,它很有帮助。这是在MVC中实现导航的最佳方法。@autrevo I添加了从视图本身导航的最佳方法。