【问题标题】:MVC Attribute routing and int 0 results in 404MVC 属性路由和 int 0 导致 404
【发布时间】:2018-08-28 13:01:37
【问题描述】:

我有一个用于跟踪门票和门票时间的应用。

在该应用程序中,我有一个时间控制器,可以显示所有输入的时间。

[Authorize]
[RouteArea("Work", AreaPrefix = "")]
[RoutePrefix("Company/{companyId:int}/Client/{clientId:int}/Ticket/{ticketId:int}")]
public class TimeController : Controller
{
    private ApplicationDbContext db = new ApplicationDbContext();

    [Route("Time")]
    public ActionResult Index(int ticketId, int clientId, int companyId)
    {
        if (ticketId == 0)
        {
            var work = db.Time
                .Include(c => c.Ticket)
                .Where(c => c.Ticket.ClientId == clientId)
                .OrderByDescending(c => c.Date)
                .ToList();
            return View(work);
        }
        else
        {
            var work = db.Time
                .Include(c => c.Ticket)
                .Where(c => c.TicketId == ticketId)
                .OrderByDescending(c => c.Date)
                .ToList();
            return View(work);
        }
    }

如果我传递一个ticketId,它将过滤与该ticket 相关的所有工作。

http://somedomain.com/Company/1/Client/1/Ticket/1/Time

当我想查看与客户端相关的所有工作(不是特定于票证的)时,我将为票证 ID 传递一个 0,例如:

http://somedomain.com/Company/1/Client/1/Ticket/0/Time

当我在 Visual Studio 调试器和本地 IIS 中运行它时,它运行良好。

当我将此发布到生产服务器时,0 将导致找不到 404 页面。

任何关于可能是什么原因的想法将不胜感激。

【问题讨论】:

  • 你能展示剩下的方法吗?
  • 我更新了完整代码
  • 其他路线在生产中有效吗?是生产环境中的 IIS 吗?
  • 所有其他控制器和路由都可以完美运行。这是唯一一个在生产中更改为 0 时抛出 404 的问题。
  • 只是一个旁注。这个应用程序已经投入生产使用了很长一段时间了。没有问题。我今天刚刚进行了此更新,因此我可以查看基于客户的时间与票证。这是我遇到的第一个问题,它只与那个 0 相关。据我所知,它特定于生产服务器。

标签: c# asp.net-mvc iis asp.net-mvc-routing windows-server-2012


【解决方案1】:

现在我觉得自己像个白痴。我发现了问题。

在我的索引视图中,我有一个 html.action (ChildActionOnly),它抓取并在顶部显示票证名称。当ticketId为0时,导致not found。

我改成:

@if (ViewBag.TicketId > 0)
{
   Html.Action("GetName", "Ticket", new { Area = "Ticket" });
}

它按预期工作。

【讨论】:

    猜你喜欢
    • 2021-05-20
    • 1970-01-01
    • 2015-04-07
    • 2014-07-12
    • 2014-01-12
    • 1970-01-01
    • 2022-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多