Kann ich etwas tun, ähnlich wie dies in einer Weise, die keinen Fehler werfen:MVC Controller-Aktion Überlastung
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));
}
}
Der Punkt ist, dass ich einen Weg für den Zugriff auf die Ressource über/Anzeigen haben wollen/Details/Rangliste als uRL im Browser, sondern auch bei der Verwendung von Masterseite:
<% Html.RenderAction("Details", "Ads", new {slot = AdSlots.Leaderboard }); %>
ich denke nur, dass sauberer als ist:
<% Html.RenderAction("Details", "Ads", new {slot = "Leaderboard" }); %>
Wenn ich wie oben tun und rufen Sie die URL/ads/details/Rangliste ich diesen Fehler:
The current request for action 'Details' on controller type 'AdsController' is ambiguous between the following action methods.. etc
ich nicht glaube, ich diesen Fehler bekommen würde, wie ich das Attribut [ChildActionOnly], um die gegeben haben andere Aktion. Ich würde dann denken, dass es für das System offensichtlich war, dass wenn ich über den Browser darauf zugreife, ich nur eine Option hätte, nicht so offensichtlich.