2009-06-14 10 views
0

J'essaye de créer une route et puis récupère par programme l'URL de cette route (ainsi je peux la passer à mon code de jquery-rater.js). Donc, je souhaite avoir l'url suivant:/vote/create L'utilisateur aura besoin de HTTP-POST. Affichage des deux valeurs: 1. PostId 2. Vote Score (octet de 1 < -> 5).Comment configurer cette route avec ASP.NET MVC?

Ceci est mon info route:

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

Ceci est ma méthode d'action (que je suis pas non plus trop sûr si elle est à droite).

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

Enfin, c'est là que je dois déterminer la uri (et je ne sais pas comment): -

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

Au début, je pensais que je pourrais utiliser le <% = Html. BuildUrlFromExpression (..)%> mais je ne sais pas comment.

Y a-t-il un meilleur/bon moyen?

gens Merci :)

Répondre

3

Il y a un UrlHelper sur le ViewPage qui a plunty de bonnes choses à faire. Puisque vous nommez la route ("View-Create") vous pouvez faire quelque chose comme ça

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

dans votre code. Si vous ne voulez pas utiliser votre nom de route, vous pouvez également utiliser la méthode Action en transmettant le nom de l'action et toutes les valeurs dont vous avez besoin.

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

Voici le url helper reference

Edit: votre itinéraire semble correct comme cela est, et lors du test sur mon boîte, il fonctionne comme un charme :)

+0

Existe-t-il d'autres solutions fortement typées? –

+0

Non, il n'y a pas d'autres solutions fortement typées incluses avec MVC ou Futures, mais David Ebbo a une très bonne implémentation. [http://blogs.msdn.com/davidebb/archive/2009/06/01/a-buildprovider-to-simplify-your-asp-net-mvc-action-links.aspx] Assurez-vous également de regarder son dernier message qui utilise des modèles T4. J'espère que cela t'aides! – Jake

Questions connexes