我有一个非常简单的存储在数据库中的编程语言列表,例如C#,Java,F#等,这些都是在剃刀视图中列出的。要查看它的详细信息,那么url就像... \ language \ java一样,但对于... \ language \ C#和... \ language \ C#不起作用。
忽略井号(#),在Action中,id参数为" C"而不是" C#"和" F"而不是" F#"。
这是代码
@foreach (var item in Model.Languages)
{
<li>
<a href="/Language/@item.Title">@item.Title</a>
</li>
}
当点击链接时,它将使用java,C#等参数调用语言控制器中的Detail Action。但是在动作方法中我得到id =&#34; C&#34;相反,如果&#34; C#&#34;
你能帮我解决一下如何处理这种情况。
答案 0 :(得分:1)
你需要url编码一些chaacters(例如#),你需要传递%23##/ p>
答案 1 :(得分:1)
使用HtmlHelper或UrlHelper生成操作网址,它们将有助于在需要时对字符进行编码
@foreach (var item in Model.Languages)
{
<li>
@Html.ActionLink(item, "Detail", "Language", new { id = item }, null)
</li>
}
答案 2 :(得分:0)
它不会发送到服务器。 使用CSharp或FSharp而不是C#或F#