2012-04-28 3 views
0

В моей _layout.cshtml я хочу добавить меню так: как передать параметр в _layout.cshtml в ActionLink asp.net MVC 3

  • @Html.ActionLink("Profile", "Details", "User", new {e_id ="[email protected]")
  • я хочу передать
    @Context.User.Identity.Name
    как e_id. Могу ли я передать его таким образом? если нет, тогда что же такое? Когда я так жестко закодирован:
  • @Html.ActionLink("Profile", "Details", "User", new { e_id="[email protected]"})
  • , он не перенаправляет меня в пользовательском контроллере. Подробности action.When я даю URL-адрес:
    http://localhost:48096/User/[email protected]
    It Works Fine. Заранее спасибо

    ответ

    0

    использования, как это

    @Html.ActionLink("Profile", "Details", "User", new { e_id="Context.User.Identity.Name},null) 
    

    Он использует эту перегрузку

    public static MvcHtmlString ActionLink(
        this HtmlHelper htmlHelper, 
        string linkText, 
        string actionName, 
        string controllerName, 
        Object routeValues, 
        Object htmlAttributes 
    ) 
    

    Если вы хотите передать любые пользовательские HTML атрибуты к элементу связи, вы можете заменить пятый параметр с этим

    Ex:

    @Html.ActionLink("Profile", "Details", "User", new { e_id="yourvalue"},new {@class="myCSsClassName"}) 
    
    +0

    Спасибо @Shyju, Как я должен получить свой routeValues, HtmlAttributes ??? пожалуйста, опишите немного больше .... –

    +0

    Спасибо @Shyju, My actionLink теперь работает как: <

  • @ Html.ActionLink («Профиль», «Детали», «Пользователь», новый {e_id = Context.User.Identity. Name}, null)
  • +0

    @AwladLiton Помогло ли это решить вашу проблему? – Shyju