【发布时间】:2021-12-07 23:05:57
【问题描述】:
我显然无法理解这里的路线或试图实现这是不可能的。
我的RouteConfig 中有这个:
routes.MapRoute(
name: "Explorer",
url: "{controller}/{action}/{prefix}/{value}",
defaults: new { controller = "Explorer", action = "Index", prefix ="", value = UrlParameter.Optional }
);
在Explorer 控制器中,我有以下内容:
[RoutePrefix("Explorer")]
public class ExplorerController : Controller
{
public ActionResult Index()
{
return View();
}
[Route("id/{value}")]
public ActionResult Import(decimal? importId)
{
return View();
}
[Route("text/{value}")]
public ActionResult Import(string importWindow)
{
return View();
}
}
其中一个 ACTION(导入)具有不同的 PREFIX,例如 window 和 id,但每当我尝试访问它时(例如 https://localhost/Explorer/Import/window/helloWorld 或https://localhost/Explorer/Import/id/200) 它一直给我以下错误
当前对控制器类型的“导入”操作请求 “ExplorerController”在以下操作之间不明确 方法:System.Web.Mvc.ActionResult Import(System.Nullable`1[System.Decimal]) 类型 项目名称.Controllers.ExplorerController System.Web.Mvc.ActionResult 类型 projectname.Controllers.ExplorerController 上的 Import(System.String)
我知道它是模棱两可的,但我有一个前缀应该使它不模棱两可。
我在这里做错了什么,如果这不是正确的方法,如何实现这个结果?
【问题讨论】:
标签: asp.net asp.net-mvc routes