2015-12-11 12 views
5

Sto creando un'applicazione angularJs in MVC 5. Ho creato una direttiva come indicato di seguito.Utilizzo del file html in url modello di direttiva angolare nel progetto mvc 5

app.directive('clusterButton', function() { 
    return { 
     restrict: 'E', 
     scope: { 
      clusterInfo: '=info' 
     }, 
     templateUrl: function(elem, attr){ 
      return 'ClusterButtonTemplate'; 
     } 
    }; 
}); 

ho .cshtml file chiamato ClusterButtonTemplate.cshtml e ho creato un metodo di vista parziale nella classe controller per restituire questo punto di vista. Quindi la direttiva angular js sta vincolando il modello.

Ho bisogno di rimuovere il metodo in classe controller mvc e ho bisogno di fare riferimento direttamente al file modello. Non voglio usare un file cshtml. Ho bisogno di un file html per modello. Ho creato un file ClusterButtonTemplate.html. Ma mentre si imposta il modello come sotto il browser mostra un 404 error.

app.directive('clusterButton', function() { 
    return { 
     restrict: 'E', 
     scope: { 
      clusterInfo: '=info' 
     }, 
     templateUrl: function(elem, attr){ 
      return 'ClusterButtonTemplate.html'; 
     } 
    }; 
}); 

non ho usato angular js di routing nel mio progetto. Tutto è gestito utilizzando lo MVC routing. Come posso risolvere questo problema. Devo usare Angular routing e MVC routing?

+1

È possibile caricare direttamente il file html inserendo il percorso nell'URL? Inoltre, è possibile utilizzare il violinista e verificare qual è il percorso effettivo che viene caricato per il file html. –

risposta

0

Si può provare a utilizzare una barra iniziale poiché viene caricata utilizzando un percorso relativo.

 templateUrl: function(elem, attr){ 
      return '/ClusterButtonTemplate.html'; 
    } 
+0

Grazie per la risposta. Non ha funzionato Sto ottenendo un'eccezione 404 non trovata. Il file si trova in Views/Home/ClusterButtonTemplate.html. Ho provato tutti i percorsi possibili. Ma il problema non è stato risolto. Penso che il problema sia dovuto al conflitto di routing Angular JS e MVC. Ma non so come risolvere questo problema. –

+0

Ahh. Ecco perché non funziona poiché si trova in Views/Home location. Cambia il tuo url in '/Views/Home/ClusterButtonTemplate.html –

4

Avrete bisogno di mettere in un luogo in cui MVC non tenterà di mappare l'URL di un controller. Per impostazione predefinita, la cartella /Content viene ignorata, quindi puoi creare una cartella sotto di essa chiamata "Modelli" e utilizzarla per l'URL.

templateUrl: function(elem, attr){ 
    return '/Content/Templates/ClusterButtonTemplate.html'; 
+0

Grazie, salvami dopo aver provato un centinaio di altre opzioni fornite in altri thread. Era vicino a fare una nuova domanda per questo :) –

Problemi correlati