2015-08-07 4 views
0

Я пытаюсь выяснить, почему мой ActionLink ошибочен. В моей _Layout.cshtml у меня естьActionLink for Logout - это неправильный маршрут

<div class="col-sm-7"> 
    <ul> 
     <li class="section-head section-head2 ">XYZ Technologies</li> 
     <li>@ViewBag.Email</li> 
    </ul> 
</div> 
<div class="col-sm-5"> 
    @Html.ActionLink("Logout", "LogOut", "Submission", new {@class = "pull-right"}) 
</div> 

Но когда я в представлении на КОНТРОЛЛЕР «customforms» он делает так:

<div class="col-sm-7"> 
    <ul> 
     <li class="section-head section-head2 ">XYZ Technologies</li> 
     <li>[email protected]</li> 
</div> 
<div class="col-sm-5"> 
    <a class="pull-right" href="/customforms/logout?Length=10">Logout</a> 
</div> 

Я предполагаю, что есть что-то перезаписать его, но я m не уверен, как отследить, что. Есть идеи?

ответ

1

Длина = 10 происходит от попытки сериализации строкового объекта, который связан с «Представление», который имеет 10 символов. Вы можете изменить его на

@Html.ActionLink("Logout", "LogOut", new { controller = "Submission" }, new {@class = "pull-right"}) 

Фактически, «ActionLink» принимает его как параметр «routeValues».

+0

я никогда не видел, чтобы кто использовать это переопределение .. я думаю, я буду знать, что он делает, если я когда-нибудь увижу это снова. – JamieD77

0

вы указываете значение маршрута в вашем помощнике ActionLink .. установить атрибуты HTML вам нужно добавить нуль для объекта маршрута парам

@Html.ActionLink("Logout", "LogOut", "Submission", null, new { @class = "pull-right" }) 
Смежные вопросы