2016-11-26 3 views
0

Я пытаюсь получить доступ к частичной части редактирования из другой папки (AddEditPersonModal.cshtml) в моем проекте mvc, а затем загрузить содержимое в бутстрап ui modal thru angular. Когда загружается страница index.cshtml, я получаю ошибку 404 на этом очень частичном. Вот мой код:Проект Angular MVC - получение 404 с templateUrl

Угловой:

$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> 

Ошибка:

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

что путь вашего 'AddEditPersonModal.cshtml' файла? – Sravan

+0

~ Views/Modal/AddEditPersonModal.cshtml, когда я запускаю отладчик в vs2015, это путь, который мне требуется для этого ... – tshoemake

+0

«template-url» должен быть относительно корневого пути приложения. например, если ваши представления в корне, то используйте. 'Views/Modal/AddEditPersonModal.cshtml', – Sravan

ответ

1

В MVC вы переходите к методам контроллера, которые возвращают представления, а не самому файлу представления. Измените сценарий

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

и удалить атрибут [HttpPost] из метода AddEditPersonModal() (это делает запрос GET, не POST)

Смежные вопросы