C# asp.net MVC路由eror 404
我不懂ASP.net的根;我错过了什么? 这是我的根:C# asp.net MVC路由eror 404,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我不懂ASP.net的根;我错过了什么? 这是我的根: routes.MapRoute( name: "ChampionID", url: "Champion/ChampionById/id", defaults: new { controller = "Champion", action = "ChampionById", id = "5" } ); 这是我的控制器: p
routes.MapRoute(
name: "ChampionID",
url: "Champion/ChampionById/id",
defaults: new { controller = "Champion", action = "ChampionById", id = "5" }
);
这是我的控制器:
public class ChampionController : Controller
{
public ActionResult ChampionById(string x)
{
ChampionId ch = new ChampionId();
ch.Id = x;
return View(ch);
}
如果您能帮助我,我将非常感激忘记routes.MapRoute。只需连接所有管线,然后将管线作为属性放置,如下所示:
public class ChampionController : Controller
{
[Route("Champion/ChampionById/{id}")]
public ActionResult ChampionById(string id)
{
ChampionId ch = new ChampionId();
ch.Id = id;
return View(ch);
}
}
另外,x应该是id。然后只需删除routes.MapRoute。然后确保您有一个名为ChampionById的相应cshtml文件。将路由更改为下面的路径,以适合您的操作结果,如下所示:
routes.MapRoute(
name: "ChampionID",
url: "Champion/ChampionById/{id}",
defaults: new { controller = "Champion", action = "ChampionById", id = UrlParameter.Optional }
);
注意我用“id”更新的内容
在这里,所有具有“Champion/ChampionById/”模式的请求都将映射到此路由,“Champion/ChampionById/”之后的任何内容都将是“id参数”。由于它在路由上标记为可选,因此也可以为null。所以最好检查一下
public class ChampionController : Controller
{
public ActionResult ChampionById(string id)
{
ChampionId ch = new ChampionId();
if( !string.IsNullOrEmpty(id))
{
ch.Id = id;
return View(ch);
}
//<TODO> : handle when your id parameter is null
return View(ch);
}
公共类ChampionController:Controller
{
public ActionResult ChampionById(字符串id)
{
ChampionId ch=新ChampionId();
如果(!string.IsNullOrEmpty(id))
{
ch.Id=Id;
返回视图(ch);
}
//:id参数为null时的句柄
返回视图(ch);
}
编辑您的路线
routes.MapRoute(
name: "ChampionID",
url: "Champion/ChampionById/{x}",
defaults: new { controller = "Champion", action = "ChampionById", x = UrlParameter.Optional }
);
您在浏览器中输入的URL是什么?您返回一个名为
ChampionById
的视图,是否有具有该名称的视图?它必须是URL:“Champion/ChampionById/{id}”,
谢谢这对我有用我会编辑帖子=)@MaroineAbdellah很高兴它对你有帮助。如果它对你有帮助,请接受作为答案。看看你之前的问题,你还没有接受任何答案。这将使人们在将来的问题上不再回答你:)请保持SO精神,接受答案。谢谢=)感谢此属性,您可以强制他选择正确的路线(这是经过测试的,并且有效)