У меня возникли некоторые проблемы с методами неоднозначного действия в MVC 2. Я попытался реализовать решение, найденное здесь: Методы неоднозначного действия ASP.NET MVC , но это просто дает мне «ресурс ошибка не может быть найдена, поскольку он думает, что я пытаюсь вызвать метод действия, который я не хочу вызвать. Класс RequiredRequestValueAttribute, который я использую, точно такой же, как и в решении другого вопроса:
public class RequireRequestValueAttribute : ActionMethodSelectorAttribute
{
public RequireRequestValueAttribute(string valueName)
{
ValueName = valueName;
}
public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo)
{
return (controllerContext.HttpContext.Request[ValueName] != null);
}
public string ValueName { get; private set; }
}
Мои методы действия:
//
// GET: /Reviews/ShowReview/ID
[RequireRequestValue("id")]
public ActionResult ShowReview(int id)
{
var game = _gameRepository.GetGame(id);
return View(game);
}
//
// GET: /Reviews/ShowReview/Title
[RequireRequestValue("title")]
public ActionResult ShowReview(string title)
{
var game = _gameRepository.GetGame(title);
return View(game);
}
Сейчас я пытаюсь использовать версию int id
, и вместо этого она вызывает версию string title
.