【问题标题】:Bad request returning when Id is present and correct当 ID 存在且正确时返回错误请求
【发布时间】: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


【解决方案1】:

找到答案: 我发现了这个问题。 Id 是正确的,并且可以通过代码正常工作。问题出在控制器中 ActionResult 的视图中。我有一行代码试图在从当前页面分配 Id 之前使用 Id 在页面上显示用户详细信息。

感谢大家的帮助,不胜感激!

【讨论】:

    猜你喜欢
    • 2020-12-01
    • 2019-12-04
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    • 2021-12-19
    • 2019-07-28
    • 1970-01-01
    • 2011-07-29
    相关资源
    最近更新 更多