MVC URL使用原始名称重写重定向

时间:2016-08-01 07:55:59

标签: asp.net-mvc

我有一个名为HomeController的控制器,我正在重写它的所有动作甚至是控制器的名称,分别用Route和Routeprefix进行装饰。 这是我的控制器,带有操作方法索引

 [RoutePrefix("MyPortal")]
    public class HomeController : Controller
    {
        [Route("Home")]
        public ActionResult Index()
        {
        }

    [Route("Index")]
        public ActionResult LandingPage()
        {
        }
     }

它的工作正常,但是当我在URL中键入Home / Index时,它给出了我的错误

A public action method 'index' was not found on controller 'Web.Controllers.HomeController'.    /Home/index 

我想将用户重定向到Index ActionResult,如果他键入Home / Index或MyPortal / Home

同样,如果他输入Home / LandingPage或MyPortal / Index,他应该重定向到LandingPage。

MyPortal / Home或MyPortal / Index工作正常。

1 个答案:

答案 0 :(得分:-1)

这个怎么样..?但是你的最后一个案例(MyPortal / Index)将不起作用

[RoutePrefix("Home")]
[RoutePrefix("MyPortal")]
public class HomeController : Controller
{
    [Route("Index")]
    [Route("Home")]
    public ActionResult Index()
    {
    }
    [Route("LandingPage")]
    public ActionResult LandingPage()
    {
    }
 }