我在当前项目中遇到了一个问题,我想为我的页面显示自定义URl。我尝试了很多技术,但没有一个能满足我的要求。 我想要这样的网址:
http://www.anyDomain.com/What-Is-Your-Name
目前,我可以像这样设置网址:
http://www.anyDomain.com/What-Is-Your-Name?Id=1
我想忽略来自URL的Querystring。因此,Controller可以识别请求和做出相应的回应。
此处,Id
用于从数据库中获取详细信息。如何将参数值从View
传递到Controller
,以便它可以识别请求而无需在URL中添加它?
我的控制器
[Route("~/{CategoryName}")]
public ActionResult PropertyDetails(int Id)
{
}
RouteConfig
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults:
new
{
controller = "Home",
action = "Index",
}
);
我的观点
<a href="@Url.Action("PropertyDetails", "Home", new {@Id=item.ID,@CategoryName = Item.Title })">
我刚注意到,我想像StackOverflow这样的网址正在使用
http://stackoverflow.com/questions/43774917/wordpress-blog-type-permalink-in-mvccustom-url-routing