小编jia*_*gzm的帖子

带有多个可选参数的asp.net mvc路由不起作用

我写了一个属性路线Route("Home/{category?}/{Subcategory?}/List")要符合下面的例子 /Home/C1/S1/List,/Home/C1/List,/Home/List

但只是为了匹配第一个url,可选参数不起作用.如何使用路由规则匹配上述三个示例?

public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }

    [Route("Home/{category?}/{subcategory?}/List")]
    public IActionResult List(Category? category = null, SubCategory? subcategory = null)
    {
        return Content(category.ToString() + "/" + subcategory.ToString());
    }

    [Route("Home/{code}/Detail")]
    public IActionResult Detail(string code)
    {
        return Content(code);
    }
}


public enum Category
{
    C1,
    C2,
    C3,
    C4
}

public enum SubCategory
{
    S1,
    S2,
    S3,
    S4
}
Run Code Online (Sandbox Code Playgroud)

类似的问题

在ASP.NET MVC 5中路由可选参数

具有一个固定动作的MVC路由和具有多个可选参数的控制器

c# asp.net asp.net-mvc asp.net-mvc-routing asp.net-core

3
推荐指数
2
解决办法
4490
查看次数