2017-08-29 1 views
3

Accueil ContrôleurSystem.Web.Mvc.WebViewPage <TModel> .Model.get retourné null

public ActionResult Index() 
{ 
    using (MvcDB dataBase = new MvcDB()) 
    { 

    } 
    return View(); 
} 

public void DataDoldur() 
{ 
    using (MvcDB dataBase = new MvcDB()) 
    { 
     Kategori ktgr1 = new Kategori(); 
     ktgr1.KategoriAdi = "Spor"; 
     dataBase.Kategori.Add(ktgr1); 

     dataBase.SaveChanges(); 
    } 

} 

Index.cshtml

<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Index</title> 
</head> 
<body> 
    <div> 
     <div> 
      <label>Kategori Seçiniz:</label> 
     </div> 
     <select name="Seçilen Kategori"> 
      @foreach (Kategori kategori in Model) 
      { 
       <option>@kategori.KategoriAdi</option> 
      } 
     </select> 
     <input type="submit" value="Haberleri Listele " /> 
    </div> 
</body> 
</html> 

« System.Web.Mvc.WebViewPage.Model.get retourné null "erreur Je comprends. que devrais-je faire? Ma base de données est prête mais je ne peux pas l'utiliser. Je pense que c'est vrai, mais ça ne marche pas. Comment puis-je faire fonctionner le foreach? Ne pas comprendre cela.

Répondre

3

Bienvenue dans la communauté. L'erreur est que vous n'avez pas défini de modèle dans votre vue.

Essayez ce qui suit:
a) créez un fichier _Layout.cshtml - c'est comme un fichier maître sous Vues/dossier partagé. b) Mettez tout votre HTML dans la mise en page et dans les fichiers de vue - ayez seulement le code dont vous avez besoin dans le corps. c) Envoyer un modèle à partir de votre méthode get controller. d) Recevoir le modèle de votre vue et itérer dans foreach (ou) créer un menu déroulant en utilisant HTML Helper

_Layout.cshtml:

<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Index</title> 
</head> 
<body> 
    @RenderBody() 
</body> 
</html> 

Index.cshtml:

@model <Your Model > 
@{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 
    <div> 
     <div> 
     <label>Kategori Seçiniz:</label> 
     </div> 
     <select name="Seçilen Kategori"> // Instead of using it this way, please go with @Html.DropDownListFor 
       @foreach (Kategori kategori in Model) 
       { 
        <option>@kategori.KategoriAdi</option> 
       } 
     </select> 
     <input type="submit" value="Haberleri Listele " /> 
    </div> 

Accueil Contrôleur :

public ActionResult Index() 
{ 
    using (MvcDB dataBase = new MvcDB()) 
    { 

    } 
    return View(<YourModel>); 
} 

Vous devez remplir votre modèle et l'envoyer à la vue l comme ci-dessus.

+0

merci beaucoup. problème résolu. – Prooff