【发布时间】:2018-04-11 08:05:21
【问题描述】:
我遇到了一段代码问题。该过程应该是,当传递一个有效的 Id 时,代码应该跳过我的“错误请求”if 语句并显示我的视图。但是,这并没有发生,它正在陷入错误的请求。
public ActionResult UserDetails(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
return View(userDetailView);
}
这只是一个 sn-p,因为 if 语句位于此 ActionResult 的顶部,并且永远不会超过它。我知道 id 是正确的,因为网页在 URL 中正确显示为:
TestWebApplication/Users/UserDetails/32
我什至尝试将其更改为:
TestWebApplication/Users/UserDetails?id=32
只是想看看如果手动输入它是否会起作用。但是,没有运气。
有人对这里可能出现的问题有任何想法吗?我完全迷路了!
【问题讨论】:
-
您是否为带有 id 参数的那个 Url 获得了正确的路由?
-
是的,在我的 RouteConfig.cs 中它被设置为默认值:url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = “索引”,id = UrlParameter.Optional }。其他页面工作正常,这就是为什么我无法弄清楚这个特定页面有什么不同。
-
您是否尝试在
if (id == null)行中放置断点或日志记录代码? -
你好...如果你有一个可以为空的参数,我认为你需要检查 id.HasValue
-
如果你完全注释掉空检查,所以它只是返回视图,它工作吗?
标签: c# asp.net .net asp.net-mvc