【问题标题】:How do I set up this route with ASP.NET MVC?如何使用 ASP.NET MVC 设置此路由?
【发布时间】:2009-06-14 07:21:23
【问题描述】:

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

所以,我希望有以下网址:/vote/create 用户将需要对其进行 HTTP-POST。发布两个值: 1. PostId 2. 投票分数(从 15 开始的字节)。

这是我的路线信息:

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>

起初,我想我可能会使用 ,但我不确定如何使用。

有没有更好/合适的方法?

谢谢大家:)

【问题讨论】:

    标签: c# asp.net-mvc routing


    【解决方案1】:

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

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

    在您的代码中。如果你不想使用你的路由名称,你也可以使用 Action 方法,传入动作名称和你需要的任何值。

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

    这里是url helper reference

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

    【讨论】:

    • 还有其他的强类型解决方案吗?
    • 不,没有其他强类型解决方案包含在 MVC 或 Futures 中,但是 David Ebbo 确实有一个非常好的实现。 [blogs.msdn.com/davidebb/archive/2009/06/01/… 也请务必查看他使用 T4 模板的最新帖子。希望这会有所帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    相关资源
    最近更新 更多