MICROSOFT VISUAL STUDIO: Tips about MVC and C#
MICROSOFT VISUAL STUDIO: Tips about MVC and C#

MICROSOFT VISUAL STUDIO: Tips about MVC and C#

Volete usare la paginazione su MVC?

Come fare il binding in MVC di una ICollection property?

Come scrivere in una vista il contenuto HTML di una string!

 

 

 

Paginazione

La migliore guida per la paginazione in MVC con C# la trovate qui.

E' un metodo semplice che si applica ad una qualunque lista di oggetti.

La prima cosa da fare è installare nel nostro progetto il plugin necessario per usare la paginazione.

Il plugin si installa mendiante il seguente comando:

 

Install-Package PagedList.Mvc

 

Mediante questa istruzione, installiamo il pacchetto PagedList.MVC mediante NuGet. La stessa cosa la si può fare mediante la console grafica di NuGet.

La lista che vogliamo paginare deve essere così creata:

 

int pageNumber = 1;

int pageSize = 10;

IPagedList<MioTipo> listPaged = listNonPaged.ToPagedList(pageNumber, pageSize);

 

Queste istruzioni servono a preparare la lista.

Vediamo nella vista cosa ci va:

 

@using PagedList.Mvc;

.......

@foreach (var item in Model.listPaged)
{
        ......
}

    Page @(Model.listPaged.PageCount < Model.listPaged.PageNumber ? 0 : Model.listPaged.PageNumber) of @Model.listPaged.PageCount

    @Html.PagedListPager(Model.listPaged, page => Url.Action("Index",
        new { page, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter }))

 

L'ultima istruzione se la si vuole personalizzare si può fare:

 

 @Html.PagedListPager(Model.listPaged, page => "my personal url/?page="+page)

 

MVC - Binding ICollection property

Ecco un esempio pratico

 


                        @for (var i= 0; i < @Model.User.Addresses.Count; i++)
                        {
                            var address = @Model.User.UsrAddresses.ElementAt(i);
                            <p>

                                    @address.MainLineAddress
                                    @Html.HiddenFor(m => m.User.Addresses.ElementAt(i).MainLineAddress, new { @Name = string.Format("User.Addresses[{0}].MainLineAddress", i) })
                            </p>
                          }

Sovrascrivendo la property @Name si forza a fissare il nome corretto e così il binding può funzionare.

 

MVC - Scrivere del testo in HTML

Supponiamo di avere una una variabile del testo HTML. Come scriverlo in ua vista?

 

@MvcHtmlString.Create(myHTMLString);   

 

Semplice ;)

 

Buon lavoro!

We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.