2009-06-14 30 views
0

私はルートを作成し、プログラム的に(私は私のjqueryの-rater.jsコードに渡すことができます)そのルートのURLを取得しようとしています。ASP.NET MVCでこのルートを設定するにはどうすればよいですか?

だから、私は、次のURLを持つことを望む:/投票/作成 ユーザーがそれにHTTP-POSTにする必要があります。 1. PostId 2投票スコア( - > 5 1 <からバイト):2つの値を転記。

これは私のルート情報です:

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を持っているビューページ上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

関連する問題