2011-01-25 5 views
0

뷰에서 Html.ActionLink를 사용하여 컨트롤러 동작에 대한 올바른 경로를 얻는 것은 문제가되지 않습니다. 다른 레이어 (예 : 컨트롤러)에서도 가능할지 궁금합니다. 나는 '링크 트리 구조'를 렌더링하기 위해 일부 데이터 액세스를 사용하여 재귀 적으로 <ul>을 생성하기 때문에 이것을 묻습니다. 감사!컨트롤러 동작에 대한 경로

크리스천

답변

0

컨트롤러에서 URL을 만들려면 URL 헬퍼를 사용할 수 있습니다.

string html = string.Empty; 
UrlHelper url = new UrlHelper(HttpContext.Request.RequestContext); 
string edit = url.Action(Constants.action_Edit, Constants.ctrl_myController, new { someId }); 
html += "<a href=\"" + edit + "\">Edit</a> "; 

이렇게하면 내부에 html 링크가있는 문자열이 생성됩니다. 위 예제에서 나는 상수를 사용하여 올바른 액션과 컨트롤러를 제공하지만 물론 "정상적인"문자열 일 수도 있습니다.

더 많은 시나리오가 필요한 경우 알려 주시기 바랍니다.

+0

감사합니다. 왜 궁금해서 html = string.Empty 문자열 대신 html = ""문자열을 사용하는 것이 더 나은 연습입니까? – cs0815

+1

@csetzkorn Jeff는이 주제에 대해 아주 좋은 기사를 가지고 있습니다. http://www.codinghorror.com/blog/2005/01/micro-optimization-and-meatballs.html – alexn

+0

@csetzkorn 글쎄, 성능 향상이있는 것 같습니다. ("", 자신의 상수, string.Empty 등), 동료와 함께 그 프로젝트에서 항상 사용하는 것이 가장 중요하다고 생각합니다. 프로그래밍 스타일이 일관된 코드를 읽는 것이 훨씬 즐겁습니다. – Tx3

관련 문제