错误操作编辑控制器 MVC

本文关键字:MVC 控制器 编辑 操作 错误 | 更新日期: 2023-09-27 18:34:19

*

我的操作有此错误。 错误我的控制器

    [Authorize(Roles = ApplicationRoles.PAINELCHAMADA_EDITAR)]
    public ViewResultBase Editar(int IdEmpresa, int id)
    {
      var model = this.Service.Get(IdEmpresa, id);
      return base.PartialView(model);
    }
    [HttpPost]
    [Authorize(Roles = ApplicationRoles.PAINELCHAMADA_EDITAR)]
    public ActionResult Editar(PainelChamada item)
    {
      if (this.ModelState.IsValid)
      {
        try
        {
          this.Service.Update(item, this.GetFieldsToUpdate());
          return RedirectToAction("Index");
        }
        catch (ValidationException exception)
        {
          base.AddValidationErrors(exception);
          return base.View(item);
        }
      }
      else
      {
        return base.View(item);
      }
    }

视图 @model 帕内尔查马达 @{ 这。ViewBag.Title = PainelChamadaResource.Titulo; 这。ViewBag.SubTitle = Geral.Editar;
} @using (Html.BeginForm( 这。默认操作编辑, "帕内尔查马达", "发布")) 新的阿贾克斯选项 //{ 插入模式 = 插入模式.替换, HttpMethod = "POST", UpdateTargetId = "content" //})) { @Html.验证摘要() @Html.HiddenFor(i => i.Id)

    <input type="submit" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" value="Alterar" />
} what might be happening? I try create routes in GlobalAsax, but no have success.

*

错误操作编辑控制器 MVC

这意味着有人向Editar操作发送请求,并且没有为IdEmpresa参数指定值。

如果要避免此异常,可以在路由映射中将IdEmpresaid参数标记为可选,并在方法中使它们可为空:

  public ViewResultBase Editar(int? IdEmpresa, int? id)

但在这种情况下,您必须在操作中使这些值无效。

这种行为在网络爬虫中很常见。有一次,我遇到了同样的问题,所以我记录了发出这些请求的所有 IP - 所有这些都是由 Google 网络爬虫完成的。所以就我而言,我只是忽略了这些异常


最好看到可用的路由映射和实际 URL,但您可能没有为 Editar 操作方法的一个或两个参数传递任何值。由于它接受的两个参数都是不可为空的整数(我假设您没有在相应的路由映射中将它们中的任何一个设置为可选),因此您会得到上述异常。