Asp.net mvc 如何在asp.net MVC中创建页面层次结构
我正在一个分类网站上工作,该网站将有“电子/手机/三星/三星3/adTitle”等链接。如何创建像asp.net中那样的视图层次结构。如果答案是HMVC,那么请参考一些包含如何实现HMVC的完整指南的链接。您不需要视图的层次结构,您应该使用它来获得基于URL的所需视图Asp.net mvc 如何在asp.net MVC中创建页面层次结构,asp.net-mvc,Asp.net Mvc,我正在一个分类网站上工作,该网站将有“电子/手机/三星/三星3/adTitle”等链接。如何创建像asp.net中那样的视图层次结构。如果答案是HMVC,那么请参考一些包含如何实现HMVC的完整指南的链接。您不需要视图的层次结构,您应该使用它来获得基于URL的所需视图 从4版开始,MVC在默认情况下不仅具有控件和视图。因此,请检查此项以了解如何自定义路由。您不需要视图的层次结构,您应该使用它来获得基于URL的所需视图 从4版开始,MVC在默认情况下不仅具有控件和视图。因此,请检查此项以了解如何自
从4版开始,MVC在默认情况下不仅具有控件和视图。因此,请检查此项以了解如何自定义路由。您不需要视图的层次结构,您应该使用它来获得基于URL的所需视图
从4版开始,MVC在默认情况下不仅具有控件和视图。因此,请检查此项以了解如何自定义路由。您不需要在此层次结构中创建视图,但需要以这种方式创建URL,这称为友好URL 看看下面的堆栈溢出问题 及
您将定义另一条路线,该路线将以您的单一操作方法结束。因此,您将在routeConfig.cs中添加一条路由,如下所示
routes.MapRoute(
name: "custom",
url: "{category}/{type}/{manufacturer}/{version}/{Title}",
defaults: new { controller = "Home", action = "customRoute"}
);
public string customRoute(string category, string type, string manufacturer, string version, string Title)
{
return category + type + manufacturer + version + Title;
}
您的自定义操作将所有值作为param传入,如下所示
routes.MapRoute(
name: "custom",
url: "{category}/{type}/{manufacturer}/{version}/{Title}",
defaults: new { controller = "Home", action = "customRoute"}
);
public string customRoute(string category, string type, string manufacturer, string version, string Title)
{
return category + type + manufacturer + version + Title;
}
您也可以使用基于动作的路由实现同样的效果
// eg: electronics/mobiles/samsung/samsungS3/adTitle
[Route("{category}/{type}/{manufacturer}/{Title}")]
public ActionResult Index(string cateogry, string type,string manfacture, string Title) { ... }
您不需要在此层次结构中创建视图,但需要以这种方式创建URL,这称为友好URL 看看下面的堆栈溢出问题 及
您将定义另一条路线,该路线将以您的单一操作方法结束。因此,您将在routeConfig.cs中添加一条路由,如下所示
routes.MapRoute(
name: "custom",
url: "{category}/{type}/{manufacturer}/{version}/{Title}",
defaults: new { controller = "Home", action = "customRoute"}
);
public string customRoute(string category, string type, string manufacturer, string version, string Title)
{
return category + type + manufacturer + version + Title;
}
您的自定义操作将所有值作为param传入,如下所示
routes.MapRoute(
name: "custom",
url: "{category}/{type}/{manufacturer}/{version}/{Title}",
defaults: new { controller = "Home", action = "customRoute"}
);
public string customRoute(string category, string type, string manufacturer, string version, string Title)
{
return category + type + manufacturer + version + Title;
}
您也可以使用基于动作的路由实现同样的效果
// eg: electronics/mobiles/samsung/samsungS3/adTitle
[Route("{category}/{type}/{manufacturer}/{Title}")]
public ActionResult Index(string cateogry, string type,string manfacture, string Title) { ... }
谢谢haseeb,但我不想创建友好的URL。每个链接都应该有单独的查询,比如如果链接以“mobiles”结尾,它将显示手机中的所有广告,如果链接以“samsung”结尾,它将显示三星的所有手机广告等等。使用这种方法,您也可以实现这一点。为每个移动制造商创建单独的文件夹是不可扩展的,因为您需要不时添加新的供应商。只有一个视图可以显示广告,但查询将不同。这是我想要的谢谢haseeb但我不想创建友好的URL。每个链接都应该有单独的查询,比如如果链接以“mobiles”结尾,它将显示手机中的所有广告,如果链接以“samsung”结尾,它将显示三星的所有手机广告等等。使用这种方法,您也可以实现这一点。为每个移动制造商创建单独的文件夹是不可扩展的,因为您需要不时添加新的供应商。只有一个视图可以显示广告,但查询将不同。这是我想要的谢谢,但我想要的是,每个链接都应该有单独的查询,比如如果链接以“手机”结尾,它将显示手机中的所有广告,如果它以“三星”结尾,它将显示三星的所有手机广告等等on@IrfanWattoo你说的是控制器参数,你可以在路由中使用它们,与默认示例中的
id=UrlParameter.Optional
类似,您可以创建类似于brand=urlparmeter.可选的,并在控制器中使用它,如param,帮助您显示正确的广告。只有一个视图可以显示所有类型的广告,但查询将是不同的谢谢,但我想要的是,每个链接都应该有单独的查询,如链接以“mobiles”结尾它将在手机上显示所有广告,如果以“三星”结尾,它将显示三星的所有手机广告等等on@IrfanWattoo您正在谈论控制器参数,并且可以在路由中使用它们,如默认示例中的id=UrlParameter.Optional
,您可以制作类似于brand=UrlParameter.可选的,并在控制器中使用它,如param,帮助您显示正确的广告。只有一个视图可以显示所有类型的广告,但查询将不同