2012-11-27 3 views
0

이미 기존 MVC 3 사이트에서 각도를 사용하려고합니다. 첫 번째로드 된 항목을 사용하여 기본 ngApp을 가져 왔지만 모듈을 추가하고 구현하려고 시도하면 $routeParams 경로 제공 업체가 고장 상태 인 것으로 보입니다. 내 MVC 3 응용 프로그램에서 키가 null이 될 수있는 유효한 경로 /Article/ReadArticle/key 경로가 있고 요청한 아티클을 전달하는 해당 컨트롤러/동작이 있습니다. key이 null이거나 비어 있으면 최신 입력 기사가 제공됩니다. 보기 대신 JsonResult을 반환한다는 것을 제외하고는 동일한 작업을 수행하는 다른 게시 작업이 있습니다.각도 경로가 Asp.Net MVC 3와 일치하지 않습니다.

MVC 생성 모델을 제외하도록 내보기를 수정하여 본질적으로 모든 각도 템플릿이 포함 된 HTML 페이지를 반환합니다. 각도 컨트롤러는 JsonResult에 대한 후 처리 작업을 호출하고 모두 복숭아입니다. 나는 샘플에 따라 각 모듈에 라우팅 추가되었지만 어떤 이유로이 경로를 잡는 것으로 나타났습니다하지 않습니다

'use strict'; 

/* App Module */ 

angular.module('je', []). 
    config(['$routeProvider', function ($routeProvider) { 
     $routeProvider. 
     when('/Article/ReadArticle/:key', { templateUrl: '/Angular/ArticleView.html', controller: ArticleCtrl }) //. 
     //otherwise({ templateUrl: '/Angular/ArticleView.html', controller: ArticleCtrl }); 
    } ]); 

은 내가 otherwise 전화를 주석. 내가 거기에 남겨두면 작동하지만 단지 기본 기사를 가져 오는 것입니다. /Article/ReadArticle/Some_Valid_Key과 같은 유효한 경로를 수동으로 입력해도 적절한 $routeParams이 생성되지 않습니다. 경로가 일치하지 않아 템플리트가로드되지 않고 페이지가 비어 있음을 주석 처리했습니다.

function ArticleCtrl($scope, $routeParams, $http) { 
    console.log($routeParams.key); 
    $http.post("/Article/GetArticleText", { "textkey": $routeParams.key }).success(function (data) { 
     console.log(data); 
     $scope.article = data; 
    }). 
    error(function (data, status) { 
     console.log(data); 
     console.log("Request failed"); 
     console.log(status); 
    }); 
} 

는 샘플에 따르면, 내 기대는 $routeParams.key가이 시점에서 Some_Valid_Key로 채워해야한다는 것입니다. 분명히 내 기대는 현실과 일치하지 않지만, 행동을 취하기 위해 어떤 부분을 놓쳤는가?

답변

0

AngularJS 라우트는 URL 해시 다음에 정의됩니다. 따라서 귀하의 기본 URL이 /Article/ReadArticle/key 인 시나리오에서는 현재 경로가 정의되어 있지 않습니다. 이것이 기본 경로가 따라 온 이유입니다 (otherwise 행을 주석 처리하기 전에). AngularJS가 정의 된 경로를 따르려면 URL은 http://mysite.com/someurl/#/Article/ReadArticle/Some_Valid_Key과 같아야합니다.

+1

Microsoft MVC를 사용할 때 경로가 작동했습니다. 각도 경로를 조정하여 MVC 경로를 "우회"하면 MVC 라우팅 문제가 발생합니다. MVC 라우팅과 각도 라우팅 사이에 충돌이있는 것으로 보입니다. –

+0

각도 라우팅 및보기 결과가 호환되지 않는 것 같습니다. 가능한 유일한 방법은 viewresults를 사용하지 않고 jsonresults를 사용하는 것입니다. 누구든지 viewresult 및 angularjs를 성공적으로 사용하면 경험을 공유하십시오. 감사! –

+0

자바 스크립트 MVC를 사용하기 시작할 때 잘 viewresults와 viewcontrollers는 동일한 Index.html/aspx로 해결되는 단일보기 컨트롤러 또는 기본 파일 호출을 끝내는 것 이상의 의미를 갖지 않습니다. (IMO) – Jens

관련 문제