が、私はエラーをスローしない方法でこれに似た何かを行うことができます:MVCコントローラのアクションの過負荷
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));
}
}
点は、私が通過/広告/リソースにアクセスする方法を持つようにしたいということですブラウザではなく、使用してマスターページ内のURLなどの詳細/リーダーボード:
<% Html.RenderAction("Details", "Ads", new {slot = "Leaderboard" }); %>
:
<% Html.RenderAction("Details", "Ads", new {slot = AdSlots.Leaderboard }); %>
私はちょうどそれがよりきれいだと思います210
私は上記のように行うと、私はこのエラーを取得するURL /広告/詳細/リーダーボードを呼び出す場合:私は、属性[ChildActionOnly]を与えているように私は私がそのエラーを取得するとは思わなかった
The current request for action 'Details' on controller type 'AdsController' is ambiguous between the following action methods.. etc
他のアクション。私はそれがシステムのために明らかだったと私はブラウザを介してアクセスする場合、私は1つのオプションを持っているだけではないように、明らかにそうだった。