Render in MVC a link with image and text

Hi guys, I want in MVC to render a text with an image as an ActionLink. For creating a simple anchor tag, we use Html.ActionLink() helper which generates anchor tag for us.

If you want to create something a bit more complicated, you must create you own component. For this reason, I created the following code. It allows you to create an anchor with an image and a text.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace PSC.MVC.Helpers
{
    public static class CustomHtmlHelpers
    {
        /// 
        /// Enum ImageAndText
        /// 
        public enum ImageAndText
        {
            /// 
            /// Image on the left, text on the right
            /// 
            ImageOnTheLeft,

            /// 
            /// Text on the left, image on the right
            /// 
            ImageOnTheRight
        }

        /// 
        /// Images the action link.
        /// 
        /// The HTML helper.
        /// The link text.
        /// The action.
        /// The controller.
        /// The route values.
        /// The HTML attributes.
        /// The image source.
        /// The alternate text.
        /// The text style.
        /// The image style.
        /// The image position.
        /// IHtmlString.
        public static IHtmlString ImageActionLink(
               this HtmlHelper htmlHelper, string linkText, string action, 
               string controller, object routeValues, object htmlAttributes, 
               string imageSrc, string alternateText = "", 
               string textStyle = "", string imageStyle = "", 
               ImageAndText imagePosition = ImageAndText.ImageOnTheLeft)
        {
            var urlHelper = new UrlHelper(
                    htmlHelper.ViewContext.RequestContext);

            // create the image
            var img = new TagBuilder("img");
            img.Attributes.Add("src", 
                    VirtualPathUtility.ToAbsolute(imageSrc));
            if (!string.IsNullOrEmpty(alternateText))
                img.Attributes.Add("alt", alternateText.Trim());
            if (!string.IsNullOrEmpty(imageStyle))
                img.Attributes.Add("style", imageStyle);

            // create a render for the image and the text
            string render = "";
            if (imagePosition == ImageAndText.ImageOnTheLeft)
                render = img.ToString(TagRenderMode.SelfClosing) + linkText;
            else
                render = linkText + img.ToString(TagRenderMode.SelfClosing);

            // create the anchor with image and text
            var anchor = new TagBuilder("a") {
                InnerHtml = render
            };
            if (!string.IsNullOrEmpty(textStyle))
                anchor.AddCssClass(textStyle);

            // add reference to the anchor
            anchor.Attributes["href"] = urlHelper.Action(action, 
                                                         controller, 
                                                         routeValues);
            anchor.MergeAttributes(new RouteValueDictionary(htmlAttributes));

            return MvcHtmlString.Create(anchor.ToString());
        }
    }
}

In your MVC code you have to add:

@using PSC.MVC.Helpers;

and then you can call your component:
@Html.ImageActionLink("Your text", "Index", "Home", null, null, 
                      "~/Content/images/img.png", "Logo", "navbar-brand", 
                      "width: 40px;")

How to remove HTML tags from data with SQL

The purpose of this article is to provide a way of cleaning up of HTML tags within the data. When we use various styles or tabular format data in UI using Rich Text Editor/ Rad Grid etc, it will save data in database with HTML tags.

When you save in database this kind of field you have:

An HTML element starts with a start tag (<p>) and ends with end tag (<p/>) and everything between Start tag and End tag is HTML element. e.g.

<b>Following are the popular databases: <br /> </b>1. SQL Server <br /> 2. Oracle <br /> 3.
Teradata <br /> 4. Sybase

We are using SQL Server CHARINDEX function to get the positions of ‘<’ and ‘>’ and once found replacing the string between <….> with blank using STUFF function. We are using WHILE Loop that will run till presence of ‘<’ & ‘>’ in the string. Below is the UDF script that performs HTML Tags clean up from data.

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[usp_ClearHTMLTags]  
    (@String NVARCHAR(MAX))  
    RETURNS NVARCHAR(MAX)  

AS  
    BEGIN  
        DECLARE @Start INT,  
                @End INT,  
                @Length INT  

        WHILE CHARINDEX('<', @String) > 0 AND CHARINDEX('>', @String, CHARINDEX('<', @String)) > 0  
        BEGIN  
            SELECT  @Start  = CHARINDEX('<', @String),   
                    @End    = CHARINDEX('>', @String, CHARINDEX('<', @String))  
            SELECT @Length = (@End - @Start) + 1  

            IF @Length > 0  
            BEGIN  
                SELECT @String = STUFF(@String, @Start, @Length, '')  
             END  
         END  
        RETURN @String  
    END  
GO

By using above UDF, We can clean the HTML tags from the data.

Design, Source and Split tabs are missing in Visual Studio 2015?

If the HTML file is in Solution Explorer, then right-click and select “Open With”. Otherwise open it with Open File dialog, but click the small dropdown arrow in the Open button, then select “Open With”. Then select “HTML (Web Forms) Editor with Encoding”. Then you should see the Design, Split and Source buttons. Click Design.

image

Converti i tuoi ebook da Kindle in qualsiasi altro formato

AVS Document COnverter

Ho trovato questo interessante software che si chiama AVS Document Converter che a mio avviso è molto utile. Ti spiego in sintesi cosa fa. Ammettiamo che hai un libro in formato Kindle (senza DRM!) e vuoi ottenere da uesto un file che sia possibile modificarlo in Word, per esempio. Questo programma fa proprio la conversione del formato. La versione di prova è perfettamente funzionante.

Convertire file in AZW

Molti eBook che troviamo online vengono distribuiti nel formato PDF o ePub. Il Kindle è compatibile con il formato PDF, anche se non è molto pratico leggerelo perché ad esempio il testo non scorre (per altre info vedi un precedente post).

Per i file in formato ePUB, invece, e per altri formati come PML o LIT, non è disponibile il servizio di conversione gratuita di Amazon, quindi dobbiamo convertirlo noi stessi. Nulla di più facile: è possibile farlo in modo semplice con Calibre.

L’installazione è particolarmente semplice ed è disponibile anche in italiano. Durante l'installazione è necessario selezionare il Kindle come dispositivo di lettura. Calibre crea quindi una cartella “Libreeria di Calibre” (notare l’errore delle due “ee” nel nome della cartella) dentro /Utenti/{user}/ in cui copierà gli eBook, sia quelli inseriti che quelli convertiti (potete correggere l’errore o lasciarlo così com’è).

Come convertire

Primo passo: aggiungere l’eBook nel formato originale.
Cliccare sull’icona “Aggiungi libri” nel menu superiore di Calibre e selezionare l’eBook nel formato originale. In questo modo l’eBook viene inserito nella libreria di Calibre e viene copiato nella cartella “Libreeria di Calibre”. I formati di eBook che è possibile inserire sono: CBZ, CBR, CBC, ePUB, FB2, HTML, LIT, LRF, MOBI, ODT, PDF, PRC, PDB, PML, RB, RTF, TCR, TXT.

Secondo passo: convertire l’eBook.
Selezionare il libro appena aggiunto e cliccare sull’icona “Converti libri” nel menu superiore di Calibre.
Si apre una finestra con un menu ad icone sulla sinistra che aprono le relative schede sulla destra. La prima cosa su cui fare attenzione è di verificare che in alto a destra in questa finestra appaia il formato MOBI come formato di oputput, ovvero il formato compatibile con il Kindle.

Finestra di conversione libro con Calibre

La prima scheda che si apre è quella dei metadati che contiene i dati su copertina, titolo ed autore del libro, e possiamo modificare questi dati, se non sono esatti. È possibile anche caricare una copertina separata da un file immagine, se nel file non è già compresa.

Ci sono poche impostazioni da fare:

  • cliccando sull’ìcona “Visualizzazione” selezionare l’opzione “Rimuovi gli spazi tra i paragrafi” altrimenti il file convertito potrebbe avere uno spazio bianco fra i paragrafi
  • cliccando sull’icona “Indice” selezionare l’opzione “Non aggiungere al sommario i capitoli autorilevati
  • cliccando sull’icona “Output MOBI” selezionare l’opzione “Non aggiungere indice al libro”.

Infine cliccare sul pulsante “OK” in basso a destra.

Dopo pochi istanti, quando l’indicatore a ruota si ferma, basta andare nella cartella “Libreeria di Calibre” per trovare il file MOBI convertito. Basta collegare il Kindle e copiare questo file nella cartella “documents” del Kindle per avere l’eBook sul Kindle.

In questo modo si possono leggere sul Kindle tutti gli eBook a partire da tutti quelli gratuiti, come quelli della libreria GoogleBooks.

Advertsing

125X125_06

Planet Xamarin

Planet Xamarin

Calendar

<<  November 2017  >>
MonTueWedThuFriSatSun
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

View posts in large calendar

Month List