我有一个来自MySQL表的以下示例数据。



我的问题是在我的MVC 4项目中,如何使路由工作,以便如果用户转到URL www.mydomain.com/products/apples/,我希望该呼叫实际上是www.mydomain.com/的视图products / index / 1,如何实现?

最佳答案

您可以创建此一条路线:

routes.MapRoute("Product", "products/{productName}",
    new {controller = "products", action="index"});


这条路线说:


  当请求传入的URL与以下模式匹配:“ products / {productName}”(例如http://www.example.com/products/apple)时,请将其传递给“ ProductsController”中的“ index”操作,以处理并传递指示的URL段由{productName}占位符,作为名为“ productName”的参数进入该操作。


那么您的操作将是:

[HttpGet]
public ActionResult Index(string productName) {
    // Lookup product from DB

    // do stuff
    var viewModel = ...;
    return View(viewModel);
}


因此,当请求产品/苹果时,“苹果”将作为productName参数传递到Index操作中。

关于c# - MV4路由来自MySQL数据库的动态路由,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18336372/

10-15 06:16