使用Routing来实现URL参数重写
在asp.net MVC中,可以使用Routing来实现URL参数重写。Routing是一种以URL形式来映射请求到MVC控制器和操作方法的机制。下面是具体的代码示例:
在Global.asax.cs文件中的RegisterRoutes方法中,进行如下的路由注册:
routes.MapRoute(
"UrlRewriting", // 路由名称
"Product/{productName}/{productID}", // URL模式
new { controller = "Product", action = "Index", productID = UrlParameter.Optional, productName = UrlParameter.Optional } // 默认路由值
);
这条路由规则的意思是:当请求/Product/{productName}/{productID}这样的URL时,将会调用Product控制器中的Index方法,并传递productName和productID两个参数。其中,productName和productID都是URL中的参数值,可以根据需要自定义。
在Product控制器中的Index方法中,可以对这两个参数进行获取和处理:
public ActionResult Index(string productName, int? productID)
{
// 根据参数值获取数据
var products = _productRepository.GetAllProducts();
if (!string.IsNullOrEmpty(productName))
{
products = products.Where(p => p.ProductName.ToLower() == productName.ToLower());
}
if (productID.HasValue)
{
products = products.Where(p => p.ProductID == productID.Value);
}
// 处理数据并返回View
return View(products);
}
在上述代码中,可以根据参数值获取相应的数据,并将其传递给View页面进行处理和展示。这样,就可以实现URL参数重写的功能了。