我正在.net mvc4中构建一个基于业务推广和销售商店的应用程序。
此网络应用程序上的用户也可以使用产品并访问他/她的个人业务页面,该页面可以在将来推广。
所以我添加了一个控制器 - Mypanel
以及用户个人或专业商家页面_Mypanel
的视图。
现在,对此页面的网址访问权限为Bizcopter.com/Mypanel/_Mypanel
我想要一个自定义用户定义的页面名称 -
即。如果商家名称是 - BookStore
然后我想在同一个控制器中添加一个名为BookStore
的视图,因此个人业务页面的URL将是 -
Bizcopter.com/Mypanel/BookStore/
此业务持有者可以使用此网址宣传其商家页面。
如果可能的话,请告诉我 -
我不知道如何实现它,所以没有任何尝试的代码。
答案 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