我正在尝试创建一个路由,然后以编程方式检索该路由的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;但我不确定如何。
有更好/正确的方法吗?
谢谢大家:)
答案 0 :(得分:3)
ViewPage上有一个UrlHelper,有很多好东西可以做到这一点。 由于您正在命名路线(“查看 - 创建”),您可以执行类似这样的操作
<%=Url.RouteUrl("Vote-Create") %>
你的代码中的。如果您不想使用路径名,您还可以使用Action方法,传入操作名称和您需要的任何值。
<%=Url.Action("VoteCreate") %>
编辑:你的路线看起来是正确的,当在我的盒子上测试它时,它就像一个魅力:)