【问题标题】:How to construct URLs in MVC?如何在 MVC 中构造 URL?
【发布时间】:2016-07-12 17:39:31
【问题描述】:

我正在使用 Url.RouteUrl 创建一个 URL 以返回给我的用户。

var path = Url.RouteUrl(new RouteValueDictionary()
            {
                { "controller", "Home"},
                {"action", "myaction"},
                {"area" , "myarea"},
            });

这会返回一个带有myarea/home/myaction 的漂亮网址

如果我需要添加一个额外的参数,比如myarea/home/myaction?param1=abc,该怎么做?

我试过了

var param1Value = "abc";
var path = Url.RouteUrl(new RouteValueDictionary()
            {
                { "controller", "Home"},
                {"action", "myaction"},
                {"area" , "myarea"},
                new {param1 = param1Value },
            });

这似乎不是正确的方式。

任何人都可以提出一些方法来做到这一点吗?

【问题讨论】:

  • @KennethK.: 如果可能的话,你能发个例子吗?
  • 忽略我之前(已删除)的评论。我读错了你的代码。
  • 这里有一些与您的请求类似的内容。 stackoverflow.com/questions/6995608/…
  • 这是 Scott Guthrie 关于路线的博客。 weblogs.asp.net/scottgu/…
  • Nix 字典中最后一项的new(仅“新”),那么它应该可以工作。

标签: c# asp.net .net routes


【解决方案1】:

试试这个:

    Url.Action("myAction","Home", new {area="myarea", param="paramvalue"});

【讨论】:

    【解决方案2】:

    找到了一种优雅的方法。

    var myDesiredUrl = FetchDomainUri();
    
    myDesiredUrl.Path = Url.RouteUrl(new RouteValueDictionary()
    {
        { "controller", "Home" },
        { "action", "myAction" },
        { "area" , "myArea" },
    });
    
    myDesiredUrl.QueryString.Add("myParam1", param1Value);
    

    【讨论】:

      【解决方案3】:

      希望这会有所帮助:

      return (new RedirectToRouteResult(
                          new System.Web.Routing.RouteValueDictionary(
                              new
                              {
                                  controller = "Home",
                                  action = "myAction",
                                  area = "myArea"
                              })));
      

      如果你想给它添加一个参数,你可以在 Route Config 文件中添加/修改路由映射。添加新键后,可以在上面的代码中指定值。

      【讨论】:

        猜你喜欢
        • 2011-01-13
        • 2015-09-22
        • 2011-06-02
        • 2015-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多