gpt4 book ai didi

c# - 为什么这条路线不能正常工作?

转载 作者:行者123 更新时间:2023-12-01 21:24:46 25 4
gpt4 key购买 nike

我真的要疯了。

这是我的 Global.asax 中的内容

routes.MapRoute("BlogDetails", "Blogs/{id}/{title}", new { controller = "Blogs", action = "Details", id = "" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);

这是我仅有的两条路线。

当我尝试访问时

<强> http://mysite/Blogs/Edit/1 它不起作用,我收到此错误

参数字典包含“mysite.Controllers.BlogsController”中方法“System.Web.Mvc.ActionResult Details(Int32)”的不可空类型“System.Int32”的参数“id”的空条目。可选参数必须是引用类型、可为 null 的类型,或者声明为可选参数。

为什么这种情况不断发生?

谢谢

我还应该添加我的 Controller 代码,如下所示

//
// GET: /Blogs/Edit/5

[Authorize]
public ActionResult Edit(int id)
{
// do a bunch of stuff and return something
}

最佳答案

尝试以下操作

routes.MapRoute("BlogDetails", "Blogs/{id}/{title}",
new { controller = "Blogs", action = "Details"},
new { id = @"\d+" });

就MVC路由而言,{id}可以是任何东西(甚至是字符串),所以它匹配Edit作为字符串,不能进入您的操作的 int id

添加 new { id= @"\d+"} 作为额外参数告诉路由系统仅匹配数字。

http://www.asp.net/(S(pdfrohu0ajmwt445fanvj2r3))/learn/mvc/tutorial-24-cs.aspx

关于c# - 为什么这条路线不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2197541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com