麻烦@ Html.ActionLink

时间:2016-10-21 12:36:53

标签: asp.net-mvc razor

我尝试做左侧栏,但所有时间我都收到错误“[HttpException(0x80004005):检测到来自客户的潜在危险值Request.Path”。这有什么问题?

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="~/Content/bootstrap.css" rel="stylesheet" />
<link href="~/Content/bootstrap-theme.css" rel="stylesheet" />
<link type="text/css" rel="stylesheet" href="~/Content/bootstrap.css" />

<title>@ViewBag.Title</title>
</head>
<body>
 <div class="navbar navbar-inverse" role="navigation">
    <a class="navbar-brand" href="@ Url.Action("List","Person")">Aplikacja</a>
</div>


<div class="row">
    <div class="col-xs-2">
        <ul class="nav nav-pills nav-stacked span3">
            <li><a href="@Html.ActionLink("Przyklad1", "Navigator")">Przyklad </a></li>

        </ul>

    </div>
    <div class="col-xs-8">
        @RenderBody()
    </div>
</div>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

@Html.ActionLink生成锚标记的标记。您不希望将其设置为另一个锚标记的href值。

当razor执行当前代码时,它会尝试生成如下所示的标记

<a href="<a href='/Navigator'>Przyklad1</a>">Przyklad</a>

这显然无效!

解决方案:只需单独使用Html.ActionLink

<li>@Html.ActionLink("Przyklad","Navigator", "YourControllerName")</li>

使用Url.Action来设置锚标记的href值。

<li><a href="@Url.Action("Navigator","YourControllerName")">Przyklad </a></li>