为了账号安全,请及时绑定邮箱和手机立即绑定

带路由的ASP.Net MVC处理段

带路由的ASP.Net MVC处理段

尚方宝剑之说 2020-02-02 15:08:31
我是ASP.Net MVC的新手,现在遇到了问题。这里是。routes.MapRoute(    "SearchResults",// Route name    "{controller}/{action}/{category}/{manufacturer}/{attribute}",    new {         controller = "Home",         action = "CategoryProducts",         category = UrlParameter.Optional,         manufacturer = UrlParameter.Optional,         attribute = UrlParameter.Optional     });这是我的控制器方法。public ActionResult CategoryProducts(string category, string manufacturer, string attribute) {    string[] categoryParameter = category.Split('_');    .    .    .    return View();}当我点击url时,类别参数始终为nullhttp://localhost:50877/Home/CategoryProducts/c_50_ShowcasesDisplays我得到这个错误Object reference not set to an instance of an object我该如何解决这个问题。我需要从细分中提取ID并使用它。同样,我也需要处理制造商和属性字符串。还有一件事我如何使我的函数获得至少一个参数而不受顺序限制?我的意思是我想做类似的功能,以便可以处理类别或制造商或属性或类别+制造商以及所有组合/
查看完整描述

2 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

只有最后一个参数可以标记为UrlParameter.Optional(否则路由引擎无法匹配哪个参数)。为了使当前的实现工作有效,您需要使用http://localhost:50877/Home/CategoryProducts?category=c_50_ShowcasesDisplays

查看完整回答
反对 回复 2020-02-02
  • 2 回答
  • 0 关注
  • 510 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信