2015-12-11 40 views
5

MVC 5'te bir angularJs uygulaması oluşturuyorum. Aşağıda belirtildiği gibi bir yönerge oluşturdum.mvc 5 projesinde açısal yönerge şablonu URL'sinde html dosyası kullanma

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

Ben ClusterButtonTemplate.cshtml.cshtml dosya adında ve ben bu görüşü dönmek için denetleyici sınıfında kısmi görünümü yöntemi oluşturduk. Yani angular js yönergesi şablonu bağlayıcıdır.

Mvc denetleyici sınıfındaki yöntemi kaldırmam gerekiyor ve şablon dosyasına doğrudan başvurması gerekiyor. cshtml dosyasını kullanmak istemiyorum. Şablon için html dosyasına ihtiyacım var. Bir ClusterButtonTemplate.html dosyası oluşturduk. Ancak, şablonu aşağıdaki gibi ayarlarken, tarayıcı bir 404 error gösterir.

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

Projemde angular js yönlendirme kullanmamıştım. Her şey MVC routing kullanılarak yönetilmektedir. Bu sorunu nasıl giderebilirim? Angular routing ve MVC routing'u kullanmam gerekiyor mu?

+1

URL'ye yolu koyarak html dosyasını doğrudan yükleyebilir misiniz? Ayrıca kemancıyı kullanabilir ve html dosyası için yüklenmekte olan gerçek yolu kontrol edebilirsiniz. –

cevap

0

Göreceli bir yol kullanılarak yüklendiğinden, önde gelen bir eğik çizgi kullanmaya çalışabilirsiniz.

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

Cevabınız için teşekkür ederiz. İşe yaramıyor. Bir 404 bulunamadı istisna alıyorum. Dosya Views/Home/ClusterButtonTemplate.html içinde bulunur. Olası yolları denedim. Ancak sorun çözülmedi. Sorunun Angular JS ve MVC yönlendirme çakışması nedeniyle olduğunu düşünüyorum. Ama bunu nasıl düzelteceğimi bilmiyorum. –

+0

Ahh. Bu yüzden bu, Views/Home konumunda bulunduğu için çalışmıyor. URL'nizi '/Views/Home/ClusterButtonTemplate.html –

4

MVC'nin URL'yi bir denetleyiciyle eşleştirmeyi denemeyeceği bir yere yerleştirmeniz gerekir. Varsayılan olarak, /Content klasörü yok sayılır, böylece "Şablonlar" adlı bir klasör oluşturabilir ve URL için bunu kullanabilirsiniz.

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

olarak değiştirin. Teşekkürler, diğer iş parçacıklarında verilen diğer yüzlerce seçeneği denedikten sonra beni kurtardım. Bunun için yeni bir soru yapmaya yakın oldu :) –

İlgili konular