2015-09-18 7 views

risposta

8

Ciò può essere ottenuto restituendo ContentResult MSDN

return Content("<script language='javascript' type='text/javascript'>alert('Hello world!');</script>"); 

o altro modo sarebbe facendo uso di ajax

return json(new {message="hello"}); 

$.ajax({ 
     url: URL, 
     type: "POST", 
     success: function(data){alert(data.message)},  
    }); 
+0

Puoi per favore includere una spiegazione anche con questo. Le sole risposte al codice sono generalmente disapprovate perché prive di ragionamento. Forse include un collegamento a MSDN o qualcosa che fa riferimento a Contenuto? –

+0

La prima opzione non funziona con mvc 6. Non succede nulla. – Beetlejuice

+0

Puoi aggiungere altro al tuo codice piuttosto che una semplice dichiarazione di ritorno, lato client, codice del controller. Preferirei comunque la seconda opzione. – din

0

Attualmente ASP.NET MVC 6 non supporta JavaScriptResult come in MVC 5. Una discussione interessante per questo può essere trovata qui (ci sono alcune soluzioni anche per il tuo problema): https://github.com/aspnet/Mvc/issues/2953

Personalmente penso che inviare il codice JS al client sia una cosa negativa (inviare al client i dati di cui il JS ha bisogno e quindi eseguire le chiamate di funzioni lì) ma sembra che ci sia una situazione valida per questo (guarda l'ultimo commento).

+0

Questa sarà una sfida per il mio progetto attuale. Ma darò una prova. – Beetlejuice

+1

Invio ??? No! Dovrebbe essere usato per la condivisione di creare dinamicamente JS utilizzando l'endpoint del sito. Ad esempio per le costanti create dinamicamente. – Maxim

2

Penso che possiamo impiantare JavaScriptResult da soli poiché non è supportato ufficialmente. E 'facile:

public class JavaScriptResult : ContentResult 
{ 
    public JavaScriptResult(string script) 
    { 
     this.Content = script; 
     this.ContentType = "application/javascript"; 
    } 
} 
Problemi correlati