Могу ли я сделать что-то подобное, чтобы не выдавать ошибку:
public class AdsController : Controller
{
AdsRepository repo = new AdsRepository();
public ActionResult Details(string id)
{
AdSlots adslot = new AdSlots();
Enum.TryParse(id, true, out adslot);
return Content(repo.GetInvocationCode(adslot, Global.SiteInfo.ID));
}
[ChildActionOnly]
public ActionResult Details(AdSlots slot)
{
return Content(repo.GetInvocationCode(slot, Global.SiteInfo.ID));
}
}
Дело в том, что я хочу получить доступ к ресурсу через / ads / details /Таблица лидеров в качестве URL-адреса в браузере, но также и на главных страницах, используя:
<% Html.RenderAction("Details", "Ads", new {slot = AdSlots.Leaderboard }); %>
Я просто думаю, что чище, чем:
<% Html.RenderAction("Details", "Ads", new {slot = "Leaderboard" }); %>
Если я сделаю, как указано выше, и вызову URL/ ads / details / лидеров Я получаю эту ошибку:
Текущий запрос действия «Подробности» для типа контроллера «AdsController» неоднозначен между следующими методами действия и т. д.
Я не думал, что получу эту ошибку, поскольку передал атрибут [ChildActionOnly] другому действию.Тогда я подумал, что для системы было очевидно, что если я получу доступ к ней через браузер, у меня будет только один вариант, не так очевидно.