加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 单个控制器的MVC多个视图

发布时间:2020-12-16 04:15:51 所属栏目:asp.Net 来源:网络整理
导读:在MVC中是否可以使用单个控制器“ListController”执行以下操作来处理以下页面… www.example.com/List/Cars/ForSale/{id} optional www.example.com/List/Cars/ForRent/{id} optional www.example.com/List/Search/ www.example.com/List/Boats/ForSale/{id
在MVC中是否可以使用单个控制器“ListController”执行以下操作来处理以下页面…

www.example.com/List/Cars/ForSale/{id} optional

www.example.com/List/Cars/ForRent/{id} optional

www.example.com/List/Search/

www.example.com/List/Boats/ForSale/{id} optional

www.example.com/List/Boats/ForRent/{id} optional

www.example.com/List/Boats/Search/

如果没有,除了将CarsController和BoatsController分开之外,还有什么方法可以绕过它吗?他们将使用相同的逻辑,只是希望URL不同.

解决方法

你绝对可以做到这一点.使用路由很简单.您可以将不同的URL路由到控制器中的不同操作.

以下是定义上述网址的示例:

routes.MapRoute("CarSale"
    "/List/Cars/ForSale/{id}",new { controller = "list",action = "carsale",id =  UrlParameter.Optional } );

routes.MapRoute("ListSearch"
    "/List/search",action = "search"} );


routes.MapRoute("BoatSale"
    "/List/Boats/ForSale/{id}",action = "boatsale",id =  UrlParameter.Optional } );

然后在您的控制器中,您将拥有每个的操作方法:

public ListController 
{
    // ... other stuff 

    public ActionResult CarSale(int? id)
    {
      // do stuff

      return View("CarView");
    }

    public ActionResult BoatSale(int? id)
    {
      // do stuff

      return View("BoatView");
    }

        // ... other stuff 
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读