2014-12-16 2 views
2

*Ошибка Действие Edit Controller MVC

У меня есть эта ошибка с моим действием. Ошибка Мой контроллер

[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 PainelChamada @ { this.ViewBag.Title = PainelChamadaResource.Titulo; this.ViewBag.SubTitle = Geral.Editar;
} @using (Html.BeginForm ( this.DefaultActionEdit, "PainelChamada", "ПОСТ")) // новые AjaxOptions // {// InsertionMode = InsertionMode.Replace, // HTTPMethod = "ПОСТ", // UpdateTargetId = "содержание" //})) { @ Html.ValidationSummary() @ Html.HiddenFor (я => 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. 

*

+0

Попробуйте установить точку останова на 'public ViewResultBase Editar (int IdEmpresa, int id)'. Является ли 'IdEmpresa' нулевым? – alex

ответ

1

Это означает, что кто-то отправляет запрос на действие Editar и не указывает значение для аргумента IdEmpresa.

Если вы хотите, чтобы избежать этого исключения можно отметить IdEmpresa и id аргументов как опция на карте маршрута и сделать их обнуляемыми в методе:

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

Но в этом случае вам придется аннулировать эти значения в вашем действии.

Такое поведение очень часто встречается у веб-сканеров. Однажды у меня была такая же проблема, поэтому я зарегистрировал все IP-адреса, которые выдавали эти запросы, - все они были выполнены с помощью Google crawlers. Поэтому в моем случае я просто проигнорировал эти исключения

+0

Tks .... Успех * _____ * –

0

Было бы хорошо, чтобы увидеть доступные отображения маршрута и фактический адрес, но вы, вероятно, проходя никакого значения для одного или обоих параметров вашего метода действия Editar. Поскольку оба параметра, которые он принимает, являются не-nullable ints (и я предполагаю, что вы не сделали ни один из них необязательным в своем соответствующем сопоставлении маршрутов), вы получаете вышеупомянутое исключение.

Смежные вопросы