2009-06-14 3 views
0

나는 경로를 만든 다음 프로그래밍 방식으로 해당 경로의 URL을 검색하려고합니다. 그래서 jquery-rater.js 코드로 전달할 수 있습니다.ASP.NET MVC에서이 경로를 어떻게 설정합니까?

따라서 다음 URL을 갖고 싶습니다./vote/create 사용자가 HTTP-POST를해야합니다. 두 값 게시 : 1. PostId 2. 투표 점수 (1 < -> 5 바이트).

이 내 경로 정보입니다 :

routes.MapRoute(
    "Vote-Create", 
    "vote/create/", 
    new {controller = "Post", action = "VoteCreate"} 
); 

이것은 (이 맞다 경우 나 또한 너무 확실하지 않다) 내 액션 메소드.

[AcceptVerbs(HttpVerbs.Post)] 
public JsonResult VoteCreate(int postId, byte score) 
{ .. } 

마지막으로,이 URI를 결정해야하는 곳이다 (그리고 난 방법을 잘 모르겠어요) : - 처음에

<script type="text/javascript">$(function() 
    { $('#rating<%= Model.Post.PostId %>') 
      .rater({ postHref: 'URI IN HERE' }); }); 
</script> 

, 나는 내가 <퍼센트 = HTML을 사용할 수 있습니다 생각했다. BuildUrlFromExpression (..) %>하지만 어떻게 잘 모르겠습니다.

더 좋고/올바른 방법이 있습니까?

감사합니다 사람들 :

답변

3

이 작업을 수행하는 케이크의 plunty이있는 ViewPage에 UrlHelper이 있습니다. 당신이 경로를 ("보기-만들기") 이름 때문에 당신은 당신의 코드에서이

<%=Url.RouteUrl("Vote-Create") %> 

처럼 뭔가를 할 수 있습니다. 경로 이름을 사용하고 싶지 않으면 Action 메서드를 사용하여 작업 이름과 필요한 값을 전달할 수 있습니다. 여기

<%=Url.Action("VoteCreate") %> 

url helper reference

편집이다 : 경로는 그대로 정확한보고, 내 상자에이를 테스트 할 때 그것은 매력 :

+0

다른 강력한 형식의 솔루션이 있습니까처럼 작동? –

+0

MVC 나 Futures에 포함 된 다른 강력한 유형의 솔루션은 없지만 David Ebbo는 정말 훌륭한 구현을 제공합니다. [http://blogs.msdn.com/davidebb/archive/2009/06/01/a-buildprovider-to-simplify-your-asp-net-mvc-action-links.aspx] 또한 자신을 살펴보아야합니다. T4 템플릿을 사용하는 최신 게시물. 희망이 도움이! – Jake

관련 문제