2016-11-26 1 views
0

Ich versuche auf einen Teil bearbeiten von einem anderen Ordner (AddEditPersonModal.cshtml) in meinem MVC-Projekt zuzugreifen, dann laden Sie den Inhalt in einem Bootstrap modal durch eckig. Wenn die index.cshtml-Seite geladen wird, erhalte ich einen 404-Fehler, der sehr partiell ist. Hier ist mein Code:Angular MVC-Projekt - Getting 404 mit TemplateUrl

Eckig:

$scope.editPerson = function (person) { 
    $scope.modalModel = person; 
    //getModal(person); 
    $uibModal.open({ 
     templateUrl: '/Modal/AddEditPersonModal.cshtml', 
     controller: 'modalController', 
     scope: $scope 
    }) 
    resolve: { 
      person: { 
       return $scope.person; 
      } 
    } 
} 

Index.cshtml

<a href="" data-toggle="modal" data-target="#myModal" ng-model="editPersonModel" ng-click="editPerson(person)"><span class="fa fa-pencil-square-o"></span></a> 

Fehler:

angular.js:12011 GET http://localhost:58227/Modal/AddEditPersonModal.cshtml 404 (Not Found)(anonymous function) @ angular.js:12011n @ angular.js:11776(anonymous function) @ angular.js:11571(anonymous function) @ angular.js:16383$eval @ angular.js:17682$digest @ angular.js:17495scopePrototype.$digest @ hint.js:1364$apply @ angular.js:17790scopePrototype.$apply @ hint.js:1427(anonymous function) @ angular.js:25890dispatch @ jquery-1.12.4.min.js:3r.handle @ jquery-1.12.4.min.js:3 
angular.js:13920 Error: [$compile:tpload] http://errors.angularjs.org/1.5.8/$compile/tpload?p0=%2FModal%2FAddEditPersonModal.cshtml&p1=404&p2=Not%20Found 
    at angular.js:38 
    at angular.js:19433 
    at angular.js:16383 
    at m.$eval (angular.js:17682) 
    at m.$digest (angular.js:17495) 
    at m.scopePrototype.$digest (hint.js:1364) 
    at m.$apply (angular.js:17790) 
    at m.scopePrototype.$apply (hint.js:1427) 
    at l (angular.js:11831) 
    at J (angular.js:12033) 

ModalController:

[HttpPost] 
    public ActionResult AddEditPersonModal(DTOPerson model) 
    { 
     return View(model); 
    } 
+0

was ist der Pfad des 'AddEditPersonModal.cshtml'-Datei? – Sravan

+0

~ Views/Modal/AddEditPersonModal.cshtml, wenn ich den Debugger in vs2015, das ist der Pfad, den es dauert mich für es ... – tshoemake

+0

Die Vorlage-URL sollte relativ zum Anwendungsstammpfad sein. Zum Beispiel, wenn Ihre Ansichten im root, dann verwenden. 'Views/Modal/AddEditPersonModal.cshtml', – Sravan

Antwort

1

In MVC navigieren Sie zu Controllermethoden, die Ansichten zurückgeben, nicht zur Ansichtsdatei selbst. Ändern Sie das Skript

$uibModal.open({ 
    templateUrl: '/Modal/AddEditPersonModal', // amend 
    controller: 'modalController', 
    scope: $scope 
}) 

und entfernen Sie das [HttpPost] Attribut aus AddEditPersonModal() Methode (es macht eine GET-Anfrage, kein POST)

Verwandte Themen