代码之家  ›  专栏  ›  技术社区  ›  Hank

如何在局部视图中获取浏览器查询字符串

  •  0
  • Hank  · 技术社区  · 5 年前

    我用@Html.动作()如是:

    @Html.Action("Index", "AreaMenu", new { Area = "" })
    

    System.Web.HttpContext.Current.Request.Url.AbsolutePath 我得到的是控制器的url,而不是地址栏中的地址。

    @inherits System.Web.Mvc.WebViewPage
    @using System.Web.Mvc.Html;
    @{
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    <script>
        var location = window.location;
    </script>
    <div class="row">
        @Html.Action("Index", "AreaMenu", new { Area = "" })
        <!--Start Content-->
        <div id="content" class="col-xs-12 col-sm-10">
            <div id="ajax-content">
                <!--Start Breadcrumb-->
                <div class="row">
                    <div id="breadcrumb" class="col-xs-12">
                        <ol class="breadcrumb pull-left">
                            <li>
                                <a href='@Url.Action("Index", "Home", new { area = "" })'>
                                    <i class="fa fa-home"> </i> Nuclei
                                </a>
                            </li>
                            <li>
                                <a href='@Url.Action("Index", "Home", new { area = (string)ViewBag.AreaName })'>@ViewBag.CurrentModule.Name</a>
                            </li>
                            <li>
                                <a href=''>@ViewBag.AreaView</a>
                            </li>
                        </ol>
                    </div>
                </div>
                <!--End Breadcrumb-->
                @RenderBody()
            </div>
        </div>
        <!--End Content-->
    </div>
    
    0 回复  |  直到 5 年前
        1
  •  1
  •   mutek    5 年前

    MVC将其视为一个独立的请求(就像您在地址栏中输入此操作一样)。这就是为什么在绝对路径中看到控制器,而不是在地址栏中看到的。

    您可以在操作中将querystring作为参数传递。

    https://stackoverflow.com/a/14152825/893543

    或者

    你用来生成页面的模型不能包含你所需要的一切吗?查询字符串是传递给生成页面的控制器的内容,只需将所需的属性添加到模型中?