参数

时间:2017-12-11 02:40:44

标签: c# asp.net-mvc

我有一个非常简单的存储在数据库中的编程语言列表,例如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;

你能帮我解决一下如何处理这种情况。

3 个答案:

答案 0 :(得分:1)

你需要url编码一些chaacters(例如#),你需要传递%23##/ p>

点击此处查看所有编码https://www.w3schools.com/tags/ref_urlencode.asp

答案 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#