如何使用ASP.NET MVC设置此路由?

时间:2009-06-14 07:21:24

标签: c# asp.net-mvc routing

我正在尝试创建一个路由,然后以编程方式检索该路由的url(所以我可以将它传递给我的jquery-rater.js代码)。

所以,我想拥有以下网址:/ 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>

起初,我想我可能会使用&lt;%= Html.BuildUrlFromExpression(..)%&gt;但我不确定如何。

有更好/正确的方法吗?

谢谢大家:)

1 个答案:

答案 0 :(得分:3)

ViewPage上有一个UrlHelper,有很多好东西可以做到这一点。 由于您正在命名路线(“查看 - 创建”),您可以执行类似这样的操作

<%=Url.RouteUrl("Vote-Create") %>
你的代码中的

。如果您不想使用路径名,您还可以使用Action方法,传入操作名称和您需要的任何值。

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

以下是url helper reference

编辑:你的路线看起来是正确的,当在我的盒子上测试它时,它就像一个魅力:)