Как я могу избежать AmbiguousMatchException между двумя действиями контроллера?

Замените следующий код CSS

#video iframe,
#video object,
#video embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 60%;
  height: 60%;
}

этим

#video iframe,
#video object,
#video embed {
  position: absolute;
  left: 50%;
  right: 50%;
  transform: translateX(-50%);
  width: 60%;
  height: 60%;
}
12
задан Sailing Judo 8 April 2009 в 22:50
поделиться

5 ответов

Просто используйте один такой метод.

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Show(int id, bool? asHtml)
{
    var result = Stationery.Load(id);

    if (asHtml.HasValue && asHtml.Value)
        return Content(result.GetHtml());
    else
        return new XmlResult(result);
}
11
ответ дан 2 December 2019 в 19:32
поделиться

Вот ссылка, которую вы можете найти полезной. В нем говорится о перегрузке контроллеров MVC.

6
ответ дан 2 December 2019 в 19:32
поделиться

Существует два способа решения этой проблемы:

1> Изменить имя метода. 2> Предоставьте разные атрибуты ActionName для двух методов. Вы можете определить свой собственный атрибут.

1
ответ дан 2 December 2019 в 19:32
поделиться

Есть ActionName атрибут. Посмотрите.

0
ответ дан 2 December 2019 в 19:32
поделиться

Для решения этой проблемы вы можете написать ActionMethodSelectorAttribute, который рассматривает MethodInfo для каждого действия и сравнивает его с размещенными значениями формы, а затем отклоняет любой метод, для которого значения формы не совпадают (за исключением названия кнопки, конечно).

Вот пример:- http://blog.abodit.com/2010/02/asp-net-mvc-ambiguous-match/

Вы также можете сделать более простой ActionMethodSelectorAttribute, который смотрит только на имя кнопки submit, но это свяжет ваш контроллер и представление более тесно.

0
ответ дан 2 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: