2011-01-19 8 views
0

URL 및 라우팅 관련 문제가 계속 발생합니다.
SO에 대한 답변을 찾을 수 없습니다.
모든 URL/링크를 한 곳에서 관리하고 싶습니다.
asp.net mvc URL/라우팅 및 중앙 집중식 관리 (C# + js)

이것은 내 C# MVC 코드와 js/jquery 아약스 코드 용입니다.

이러한 URL은 신청서에 흩어져 있습니다.
프로덕션 서버로 이동하려면 수정해야하며 응용 프로그램에서 모든 항목을 찾아야한다는 점이 마음에 들지 않습니다.
한 번만 고칠 수 있지만 한 번만하고 싶습니다.

모든 링크/그룹을 어떻게 관리 할 것인지에 대한 아이디어는 매우 감사하겠습니다. 당신이 응용 프로그램 특정 URL을 읽기를 그 URL은 한 동안 변경 한 경우


줄리안

답변

0

당신은 Html.ActionLink 또는 Html.BuildUrlFromExpression를 사용할 수 T4MVC

사용을 고려 (C => c.ControllerAction())

+0

@notAnExpert - 좋은 기사 주셔서 감사합니다. –

0

의존 성공적인 광고는 인생을 즐길 수. 그런 다음 모든 URL을 데이터베이스 테이블/etc에 넣고 특정 키를 사용하여 검색 할 수 있습니다.

그런 식으로 URL을 변경하면 데이터베이스의 URL을 변경하면 모든 응용 프로그램이 계속 정상적으로 실행됩니다.

+0

감사하지만 내 응용 프로그램에서 DB를 사용하지 않고, 복잡하지 않으 이 단계에서의 것들. –

0

URL은 RegisterRoutes 정적 방법 Global.asax에 한 곳에서 관리해야합니다. 응용 프로그램의 절대적으로 다른 모든 부분에서는 URL을 처리/생성 할 때 HTML 도우미를 사용해야합니다. 헬퍼가 라우팅 시스템을 고려하기 때문에 이런 식으로 문제가 발생하지 않습니다.

그래서 대신 쓰기 : 다음

<%: Html.Action("foo", "myaction", "mycontroller") %> 

과 :이 foo를 생성하는 HTML 도우미를 사용

$('#foo').click(function() { 
    $('#result').load('/mycontroller/myaction'); 
    return false; 
}); 

$('#foo').click(function() { 
    $('#result').load(this.href); 
    return false; 
}); 

는 하나의 URL을 하드 코딩하지 마십시오 당신의 유일한 중앙 집중식 URL 인 global.asax의 과정을 제외하고는 URL을 정의해야합니다. 따라서 기본적으로 global.asax가 아닌 다른 부분에 /foo/bar 형식의 글을 쓸 때마다 틀리게 처리합니다.

+0

다시 돌아가려면 며칠이 걸렸습니다. Html.Action 코드에서 콜론 (:)이 아닌 동등한 (=) 부호가 있어야한다고 생각합니다. –

+0

Html에 버튼이 있습니다. jQuery는 div를로드하는 작업을 첨부합니다. div id가 #result이고 버튼이 #foo라고 가정하면 href 속성을 얻는 방법 - 버튼에 href 속성이 없습니까? –

관련 문제