【问题标题】:ASP MVC Route not matchingASP MVC 路由不匹配
【发布时间】:2018-11-01 12:23:30
【问题描述】:

我在使用 MVC Routes 时遇到问题,这让我很害怕。我有一个区域,它有一个指向该区域外方法的链接。问题是当我点击链接时,它会重新加载页面,而不调用正确的方法。你知道有什么方法可以知道服务器匹配的是哪个规则或路由吗?我的意思是,我认为这可能是路由配置问题,但我不知道服务器使用哪个路由来匹配链接。

这是我的结构。

/区域/仪表板(区域)

/Controllers/TestController.cs 方法为“TestMethod(int i)”

在仪表板的一个页面中,我有一个带有 href="/Test/TestMethod/1" 的链接,所以我在 TestMethod 中设置了一个断点,但从未到达断点。

更新: 即使直接从浏览器调用方法,我也无法访问该方法。

你能帮我解决这个问题吗? 谢谢!!

【问题讨论】:

  • 同一个控制器中的其他方法是否有效?
  • 您需要发布您的代码。 RouteConfig、ActionResults、View 等
  • @SqlACID 我在那个控制器中只有一种方法。问题是我找不到查看系统正在使用哪条路由的方法。
  • 主要是因为链接正在重新加载页面(因为路由)而不是调用正确的方法:/
  • 在浏览器中,您应该像 >/Dashboard/Test/TestMethod/1 一样调用它。由于控制器和视图托管在区域内,因此您必须在形成的 URL 中提供。

标签: c# asp.net-mvc routes


【解决方案1】:

嗯,我发现了一些非常奇怪的东西。我的方法被称为“更改”,所以为了“尝试”,我将名称更改为“设置”并且它起作用了! 如果有人知道为什么会这样......

    public ActionResult Set(int id)
    {
        CookieHelper.UpdatePeec((PEEC)id);

        return Redirect("/");
    }

而不是

    public ActionResult Change(int id)
    {
        CookieHelper.UpdatePeec((PEEC)id);

        return Redirect("/");
    }

谢谢!

【讨论】:

    猜你喜欢
    • 2012-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多