【问题标题】:Display #, not %23 in the URL在 URL 中显示 #,而不是 %23
【发布时间】:2015-05-05 07:40:38
【问题描述】:

目标:
在 URL 中表示“#”而不是“%23”,然后它应该根据 id 显示特定信息。

http://localhost:49332/Home/about2?a=1&b=2&actiona=#cs

http://localhost:49332/Home/about2?a=1&b=2&actiona=%23cs

问题:
我需要#的原因是根据html的id在网络浏览器顶部(White Space between the Title and Web Browsers)显示特定内容

当我在 URL 中使用“#cs”(http://localhost:49332/Home/about2?a=1&b=2&actiona=#cs) 进行硬编码时,一切正常。

我不知道如何显示解码 URL,以便在您单击超链接“测试链接”后显示“#”。

关于.cshtml

@{
    ViewBag.Title = "About";
}

<hgroup class="title">
    <h1>@ViewBag.Title.</h1>
    <h2>@ViewBag.Message</h2>
</hgroup>

<article>
    <p>
        Use this area to provide additional information.
    </p>

    <p>
        Use this area to provide additional information.
    </p>

    <p>
        Use this area to provide additional information.
    </p>


    <a href="@Url.Action("about2",
            new { a=1, b=2, actiona="#cs"
            })">
      Test länk  
    </a>
</article>


                <aside>
                    <h3>Aside Title</h3>
                    <p>
                        Use this area to provide additional information.
                    </p>
                    <ul>
                        <li>@Html.ActionLink("Home", "Index", "Home")</li>
                        <li>@Html.ActionLink("About", "About", "Home")</li>
                        <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
                    </ul>
                </aside>

About2.cshtml

@{
    ViewBag.Title = "About2";
}

<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.css" rel="stylesheet" />
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>      

<script>

    jQuery(document).ready(function() {

        var url = document.location.toString();

        if ( url.match('#') ) {
            var hash = url.split('#')[1];

            // collapse the expanded panel
            $('#accordion .accordion-collapse').removeClass('in');

            // expand the requested panel
            $('#' + hash + '_c').addClass('in');

            setTimeout(function () {
                window.scrollBy(0, -10);
            }, 0);
        }
    });


</script>

<h2>About2</h2>



a<br>   a<br>   a<br>   a<br>   a<br>   a<br>   a<br>   a<br>   a<br>   a<br>   a<br>   a<br>   a<br>   a<br>   a<br>   a<br>   a<br>   a<br>   a<br>


<div id="accordion" class="accordion-group">
    <div class="panel">
        <h4 id="cs" class="accordion-title"><a data-toggle="collapse" data-parent="#accordion" data-target="#cs_c">Child Survival: Boosting Immunity and Managing Diarrhoea</a></h4>
        <div id="cs_c" class="accordion-collapse collapse in">
            <p>...</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
            <p>aaaaa</p>
        </div>

        <h4 id="chgd" class="accordion-title"><a data-toggle="collapse" data-parent="#accordion" data-target="#chgd_c">Child Health, Growth and Development: Preventing Mental Impairment with Iodine and Iron</a></h4>
        <div id="chgd_c" class="accordion-collapse collapse">
            <p>...</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
            <p>bbbbb</p>
        </div>

        <h4 id="wmnh" class="accordion-title"><a data-toggle="collapse" data-parent="#accordion" data-target="#wmnh_c">Women’s and Newborn Survival and Health: Iron Supplementation and Food Fortification</a></h4>
        <div id="wmnh_c" class="accordion-collapse collapse">
            <p>...</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
            <p>ccccc</p>
        </div>
    </div>
</div>

public ActionResult About2(int? a, int? b, string actiona)
{

    var genres = new List<Genre>
    {
        new Genre { Name = "album"},
        new Genre { Name = "one"},
        new Genre { Name = "two"}
    };

    return View("About2", genres);            
}

【问题讨论】:

  • 使用接受片段的Html.ActionLink overloads 之一
  • 你想要什么作为actiona查询字符串参数的值?你希望它包含#cs吗?
  • Stephen - 抱歉,出现同样的问题。
  • John - 是的,我希望 actionas 值包含“#cs”
  • 你不能有一个带有'#`的路由值。 # 是一个片段标识符。 - 使用@Html.ActionLink("Test länk", "about2", "Home", null, null, "cs", new { a = 1, b = 2 }, null) 并从方法中删除actiona 参数。

标签: c# asp.net-mvc-4 url razor


【解决方案1】:

感谢斯蒂芬·穆克的帮助!

你不能有一个带有“#”的路由值。 # 是一个片段 标识符。 - 使用@Html.ActionLink("Test länk", "about2", "Home", null, null, "cs", new { a = 1, b = 2 }, null) 并删除 actiona 方法的参数。

【讨论】:

    猜你喜欢
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 2013-11-19
    • 2019-02-04
    • 2021-01-01
    相关资源
    最近更新 更多