在asp.net mvc4中添加自定义视图名称

时间:2013-12-30 15:29:34

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我正在.net mvc4中构建一个基于业务推广和销售商店的应用程序。

此网络应用程序上的用户也可以使用产品并访问他/她的个人业务页面,该页面可以在将来推广。

所以我添加了一个控制器 - Mypanel以及用户个人或专业商家页面_Mypanel的视图。

现在,对此页面的网址访问权限为Bizcopter.com/Mypanel/_Mypanel

我想要一个自定义用户定义的页面名称 -

即。如果商家名称是 - BookStore 然后我想在同一个控制器中添加一个名为BookStore的视图,因此个人业务页面的URL将是 -

Bizcopter.com/Mypanel/BookStore/此业务持有者可以使用此网址宣传其商家页面。

如果可能的话,请告诉我 -

  1. 替换用户选择的视图名称
  2. 在同一个控制器中添加来自客户端的视图
  3. 我不知道如何实现它,所以没有任何尝试的代码。

    网站网址 - http://bizcopter.com/Mypanel/_Mypanel

3 个答案:

答案 0 :(得分:2)

每个企业都不需要单独的视图和控制器操作。

我会创建一个名为MyPanel的控制器和视图。控制器采用一个名为businessName的参数来加载与参数相关的数据。

答案 1 :(得分:2)

默认情况下,你的AppStart / RouteConfig.cs中会有一条路线,如下所示:

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

默认网址结构可能类似于:http://localhost:{PortNumber}/{Controller}/{Action}

我们可以归因于以下内容:

Controller = Home

Action = Index

现在,如果你想要一些类似于你拥有它的东西,你需要的东西是:

http://testing.com/Fruits/Apples

Controller = Fruits

Action = Apples

默认情况下,网址格式将匹配具有正确网段数的任何网址,在本例中为{controller} / {action}

总的来说,您应该只需要MyPanel控制器,并且控制器采用字符串参数将正确的对象/模型加载到视图中。

来源:Pro ASP.NET MVC 4 - Adam Freeman

答案 2 :(得分:1)

正如其他人所说,你可以添加一条新路线。考虑这段代码:

routes.MapRoute(
            name: "MyCustomRoute",
            url: "MyPanel/{name}"
            defaults: new  { controller = "MyPanel", action = "MyAction", name="" }
        );

在此路线中,如果用户输入此网址:

Bizcopter.com/Mypanel/

默认情况下,它会转到您MyAction的{​​{1}}。实际上它始终会转到MyPanel Controller,而在您的MyAction中,您必须使用MyAction参数并将用户重定向到相关操作:

name