繁体   English   中英

参数中忽略了ASP.NET MVC哈希符号

[英]ASP.NET MVC hash sign ignored in parameter

我在数据库中存储了非常简单的编程语言列表,例如C#,Java,F#等,这些都在剃刀视图中列出。 要查看它的详细信息,然后使用像... \\ language \\ java这样的url却对... \\ language \\ C#和... \\ language \\ C#无效的URL。

井号(#)将被忽略,并且在操作中,id参数是“ C”而不是“ C#”,而参数是“ F”而不是“ F#”。

这是代码

@foreach (var item in Model.Languages)
{
    <li>
        <a href="/Language/@item.Title">@item.Title</a>
    </li>
}

当单击链接时,它将在语言控制器中使用诸如Java,C#等参数调用“详细操作”。但是在操作方法中,如果“ C#”,我将获得id =“ C”

您能帮我如何处理这种情况吗?

您需要对一些字符(例如#)进行url编码,您需要将%23传递给#

在此处检查所有编码https://www.w3schools.com/tags/ref_urlencode.asp

使用HtmlHelper或UrlHelper生成操作网址,它们将在需要时帮助编码字符

@foreach (var item in Model.Languages)
{
    <li>
        @Html.ActionLink(item, "Detail", "Language", new { id = item }, null)
    </li>
}

它不会发送到服务器。 使用CSharp或FSharp代替C#或F#

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM