我正在添加一些包含一些内容的.cshtml文件(没有动态加载,只是静态内容)
有几个文件: / Views是一个目录 /经销商是/ Views
中的目录Views - Dealership - About.cshtml
Views - Dealership - Testimonials.cshtml
Views - Dealership - Audi.cshtml
Views - Dealership - AudiA6.cshtml
Views - Dealership - AudiA8.cshtml
Views - Dealership - BMW.cshtml
Views - Dealership - BMW5.cshtml
Views - Dealership - BMW7.cshtml
网址应该是:
www.mywebsite.com/dealership/about
www.mywebsite.com/dealership/testimonials
www.mywebsite.com/dealership/audi
www.mywebsite.com/dealership/audi/audi-A6
www.mywebsite.com/dealership/audi/audi-A8
www.mywebsite.com/dealership/bmw
www.mywebsite.com/dealership/bmw/bmw-5
路线应该如何?我有这个:
routes.MapRoute(
"Dealership", // Route name
"dealership/{action}/{id}", // URL with parameters
new { controller = "Dealership", action = "Index", id = string.Empty }); // Parameter defaults
适用于
www.mywebsite.com/dealership/audi
或
www.mywebsite.com/dealership/testimonials
但我不知道如何为
创建路线 www.mywebsite.com/dealership/audi/audi-A6
我希望它不会太混乱; - )
答案 0 :(得分:2)
一般情况下,静态内容应该放在Content目录中,但我可以看到为什么你不想这样做。我会考虑为特定车辆使用部分视图,然后在该制造商的基本视图中使用逻辑来确定是否显示基于模型的特定视图的通用代码或部分代码。在您的控制器中,为汽车模型添加另一个参数(注意,我已将id
重命名为make
)。
路线
routes.MapRoute(
"Dealership", // Route name
"dealership/{action}/{make}/{model}", // URL with parameters
new { controller = "Dealership", action = "Index", make = string.Empty , model = UrlParameter.Optional }); // Parameter defaults
控制器
public ActionResult Index( string make, string model )
{
return( make, model );
}
观看次数(audi.cshtml)
@model string
@if (string.IsNullOrEmpty(model)) {
.. manufacturer html...
}
else
{
@Html.Partial( "audi-" + Model );
}
然后将您的视图文件夹设置为
dealership/audi.cshtml
dealership/audi-audi-a6.cshtml
...
答案 1 :(得分:0)
由于框架搜索带有“audi-A6”名称的视图,它不起作用,但它不存在。它的名字是“audiA6”。 尝试在“audi-A6.cshtml”中更改视图名称。
我希望它有用