2017-12-31 208 views
-1

I Navigationsleiste auf "_layout.cshtml"-Datei, die Last dynamicly von db ist. Ich möchte jetzt "A href" Parameter dynamisch von "viewname" -Parameter zu meinem Home Controller auf der Aktionsliste setzen.ASP.NET MVC - System.Web.Mvc.WebViewPage <TModel> .Model.get zurückgegeben null

Alles funktioniert gut, wenn meine Navigationsleiste auf Index.cshtml Datei ist, aber ich möchte auf meiner _layout.cshtml Datei, um sie zu haben auf jeder Website Menü haben. Wenn ich es auf Seite Layout haben bekomme ich diesen Fehler:

System.Web.Mvc.WebViewPage<TModel>.Model.get returned null. 

Meine Navigation:

<nav class="nav"> 

      @foreach (var electronic in Model.Electronics) 
      { 
       <a href="@Url.Action("List","Home", new { viewname = electronic.Name.ToLower() })" class="nav-link">@electronic.Name</a> 
      } 

     </nav> 

Aktionsliste in Homecontroller:

public ActionResult List(string viewname) 
     { 
      return View(viewname); 
     } 
+0

Sie vorbei nicht ein y Modell zum Aufruf 'View'. –

+0

Hmmm ... ich verstehe nicht, auf Index.cshtml funktioniert es so was ist falsch? – FreeStyle09

+1

Nun, vielleicht braucht diese Ansicht mehr Daten, wo der Index nicht funktioniert. –

Antwort

0

Yup ich das beheben. Ich übergebe Modell über Html.Action und gebe als PartialView zurück. Danke Jungs

_layout.cshtml

@Html.Action("Menu") 

Aktionsmenü:

[ChildActionOnly] 
     public ActionResult Menu() 
     { 
      var electronics = db.Electronics.ToList(); 

      var vm = new HomeViewModel() 
      { 
       Electronics = electronics, 
      }; 


      return PartialView("Menu", vm); 
     } 

und Teilansicht:

@model PC_SHOP.ViewModels.HomeViewModel 

<div class="header_menu"> 
    <div class="container"> 
     <div class="row"> 

      <nav class="nav"> 

       @foreach (var electronic in Model.Electronics) 
       { 

        <a href="@Url.Action("List", "Home", new { viewname = electronic.Name.ToLower() })" class="nav-link"> @electronic.Name</a> 

       } 

      </nav> 
     </div> 
    </div> 
</div> 
Verwandte Themen