asp.net mvc - Using PagedList with ViewModel -


hi guys need in solving problem while using pagedlist viewmodel(works domain model).

i mvc beginner, here have tried far.

/**********i have 1 model***********/

public class property {             public int id { get; set; }     public int userid { get; set; }     public datetime created { get; set; }     public datetime edited { get; set; } } 

created viewmodel out of (will add more properties other domain model time being using 1 domain model

public class searchresultsvm {      public pagedlist.ipagedlist<property> basicdetails { get; set; }  } 

controller action method:

public actionresult searchresults(string sortorder, string searchkeyword, string currentfilter, int? page) {     viewbag.currentsort = sortorder;     viewbag.titlesortparm = string.isnullorempty(sortorder) ? "title_desc" : "";     viewbag.datesortparm = sortorder == "date" ? "date_desc" : "date";     if (searchkeyword != null){page = 1;}     else{searchkeyword = currentfilter;}     viewbag.currentfilter = searchkeyword;                 var sr = s in db.property                           select s;               if (!string.isnullorempty(searchkeyword))     {sr = db.property.where(s =>   s.propertytitle.toupper().contains(searchkeyword.toupper()));}     switch (sortorder)     {         case "title_desc":             sr = sr.orderbydescending(s => s.propertytitle);             break;         case "date":             sr = sr.orderby(s => s.created);             break;         case "date_desc":             sr = sr.orderbydescending(s => s.created);             break;         default:             sr = sr.orderby(s => s.propertytitle);             break;     }     searchresultsvm srvm = new searchresultsvm();     int pagesize = 10;     int pagenumber = (page ?? 1);     srvm.basicdetails = sr.tolist().topagedlist(pagenumber,pagesize);     return view(srvm); } 

my view

while accessing viewmodel in view not getting properties of property domain model

@model pagedlist.ipagedlist<gh_final.viewmodel.searchresultsvm> @using pagedlist; @using pagedlist.mvc;  @using (html.beginform("searchresults", "home", formmethod.get)) { <p>     find name: @html.textbox("searchkeyword", viewbag.currentfilter string)     <input type="submit" value="search" /> </p> }   @foreach (var item in model) {     <tr>         <td>             @html.displayfor(modelitem => item.created)         </td>         <td>             @html.displayfor(modelitem => item.basicdetails.created)         </td>         <td>             @html.displayfor(modelitem => item.basicdetails.propertydesc)         </td> 

instead of:

@model pagedlist.ipagedlist<gh_final.viewmodel.searchresultsvm> 

do this:

@model gh_final.viewmodel.searchresultsvm 

and instead of:

@foreach (var item in model) {     <tr>         <td>             @html.displayfor(modelitem => item.created)         </td>         <td>             @html.displayfor(modelitem => item.basicdetails.created)         </td>         <td>             @html.displayfor(modelitem => item.basicdetails.propertydesc)         </td> 

it should be:

@foreach (var item in model.basicdetails) {     <tr>         <td>             @html.displayfor(modelitem => item.created)         </td>         <td>             @html.displayfor(modelitem => item.edited)         </td>         <td>             @html.displayfor(modelitem => item.propertydesc)         </td>     <tr> } 

Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -