2011-03-15 36 views
5

BenAsp.Net MVC - Aşırı yük Eylem yöntemi

Benim sorunum aşırı yük eylem yöntemini uygulamaya nasıl olduğunu bir asp.net mvc web sitesi oluşturdu

Kontrolör


    public ActionResult Index(int id) 
    { 
     //code 
     return View(model); 
    } 

    public ActionResult Index() 
    { 
     //code 
     return View(model); 
    } 

Görünüm


    <div id="menucontainer"> 
      <ul id="menu">   
        <li><%= Html.ActionLink("Home", "Index", "Home")%></li> 
        <%if (Page.User.Identity.IsAuthenticated) 
         {%> 
        <li><%= Html.ActionLink("Profilo", "Index", "Account")%></li> 
        <%} %> 
        <li><%= Html.ActionLink("About", "About", "Home")%></li> 
       </ul> 
      </div> 

Görünümde Usercontrol (ascx) eklenir. Bu usercontrol profili (görünüşte) arkadaş


    <td> 
      <%= Html.ActionLink(Html.Encode(item.Nominativo), "Index", "Account", new { id = item.IdAccount }, null)%> 
     </td> 

Küresel asax


    public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      routes.MapRoute(
       "Default", 
       "{controller}/{action}/{id}", 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 
     } 

i "kaynak bulunamıyor, görünümde eylem Index tıklayın hatayı döndürür

... eCC listeler .. "

Bu sorun için birkaç yanıt buldum (ecc özelliğini kullanarak ..) ancak çalışmaz.

Bunu yapmanın bir yolu var mı? Global asax'a maproute eklemeliyim? cevaplar için çok

sayesinde

+0

olası yinelenen (http://stackoverflow.com/questions/436866:

bir geçici çözüm aynı yöntemle hem işlemleri işlemek üzere olduğunu/can-you-aşırı yük-denetleyici-yöntemleri-in-asp-net-mvc) – Marijn

cevap

10

Sen belirsizliği azaltmak için bir ActionMethodSelector özelliği olan her iki aşırı yükleri süslemek gerekiyor. ASP.NET MVC uygun aşırı yüklenmeyi seçmez. [? Eğer ASP.Net MVC denetleyicisi yöntemleri aşırı Can]

public ActionResult Index(int? id) { 

    if (id.HasValue) { 
     // id present 
    } else { 
     // id not present 
    } 
} 
+0

çok teşekkürler, denemek ve bildirmek. Null parametresi ile aynı yöntemi kullanarak –

+0

çalışır! Şimdi mvcCodeRouting'i çalıştırmayı deneyin .. –

+0

mvccoderouting referansını eklediğimde, uyarı simgesini görün. Asp.net mvc 2'yi visual studio 2008 ile kullanıyorum. –