2016-09-19 2 views
0

So rendert meine Indexansicht die Ansicht namens StudentWellnessReviews, die Bewertungen aus der dbo.Review-Tabelle abruft. Alles funktionierte, bis ich versuchte, die Paginierung für die Ansicht StudentWellnessReviews im ReviewsController einzurichten. Der Fehler lautet: In einer Datei ist nur eine 'model'-Anweisung zulässig.In einer Datei ist nur eine 'model'-Anweisung zulässig (Paginierung)

ReviewsController

public class ReviewsController : Controller 
{ 
    private SizaData_1Entities db = new SizaData_1Entities(); 

// GET: Reviews 
public ActionResult Index() 
{ 
    return View(); 
} 

//Student Wellness Reviews 
public ActionResult StudentWellnessReviews(int page = 1, int pageSize = 4) 
{ 
    using (var context = new SizaData_1Entities()) 
    { 

     List<Review> listReviews = context.Reviews.SqlQuery("select * from dbo.Review where WellnessService='Student Wellness Service'").ToList(); 
     PagedList<Review> userreview = new PagedList<Review>(listReviews, page, pageSize); 
     return View(userreview); 
    } 
} 

StudentWellnessReviews Ausblick:

@model IEnumerable<Siza.Models.Review> 

@{ 
    ViewBag.Title = "Index"; 
    Layout = ""; 
} 

@model PagedList.IPagedList<Siza.Models.Review> 
@using PagedList.Mvc; 


      <table class="table text-center width:50%"> 
       @foreach (var item in Model) 
       { 
        <tr> 
         <td> 
          <h5>Username</h5> 
         </td> 
         <td> 
          <p> 
           <div align="left">@Html.DisplayFor(modelItem => item.Username)</div> 
          </p> 
         </td> 
        </tr> 

        <tr> 
         <td> 
          <h5>Wellness Service</h5> 
         </td> 
         <td> 
          <p> 
           <div align="left">@Html.DisplayFor(modelItem => item.WellnessService)</div> 
          </p> 
         </td> 
        </tr> 

        <tr> 
         <td> 
          <h5>Rating</h5> 
         </td> 
         <td> 
          <p> 
           <div align="left">@Html.DisplayFor(modelItem => item.Rating)</div> 
          </p> 
         </td> 
        </tr> 

        <tr> 
         <td> 
          <h5>Feedback</h5> 
         </td> 
         <td> 
          <p> 
           <div align="left"> @Html.TextAreaFor(modelItem => item.Feedback, new {@readonly = true})</div> 
          </p> 
         </td> 
        </tr> 

        <tr> 
         <td> 
          <h5>Date Created</h5> 
         </td> 
         <td> 
          <p> 
           <div align="left"> @Html.DisplayFor(modelItem => item.Date)</div> 
          </p> 
         </td> 
        </tr> 
        <tr><td colspan="2"><hr class="active"/></td></tr> 

       } 

       @Html.PagedListPager(Model, Page => Url.Action("StudentWellnessReviews", 
       new { Page, pageSize = Model.PageSize})) 
       Showing @Model.FirstItemOnPage to @Model.LastItemOnPage of @Model.TotalItemCount Reviews 

      </table> 

Teil des Index Ansicht

@using Siza.Controllers 


@{ 
    ViewBag.Title = "Index"; 
} 

@{Html.RenderAction("StudentWellnessReviews", "Reviews");} 

Hilfe würde sehr geschätzt.

Antwort

3

Das Problem ist, dass Sie nicht Modell für Ihre View mehrfach definieren können, richtig n ow Sie sagen, dass Ihre Sicht stark mit beiden IEnumerable<Siza.Models.Review> und PagedList.IPagedList<Siza.Models.Review> eingegeben wird, die nicht sein kann, also was ich sehe, ist, dass Sie benötigen PagedList.IPagedList<Siza.Models.Review> nur so entfernen Sie die Top-Linie, wo Sie Modell IEnumerable<Siza.Models.Review> setzen sein wie:

@model PagedList.IPagedList<Siza.Models.Review> 
@using PagedList.Mvc; 
@{ 
    ViewBag.Title = "Index"; 
    Layout = ""; 
} 
................. 
Your rest view 
+0

nicht für mich arbeiten, um es ablehnen @modelIEnumerable Entfernen

Verwandte Themen