Mam renderowania menu z częściowego działania bezpośrednio do układu za pomocą "Area =":T4MVC @ Url.Action (MVC.Controller.Action()) Renders Parametr w QueryString
@Html.Action(MVC.Menu.Index())
ten action, określa menu częściowe do renderowania. Na przykład menu publiczne jest częściowe. W ramach tych podszablonów, jestem również za pomocą T4MVC do renderowania linki:
<ul id="navHolder">
<li class="level1">
<ul class="mainMenu">
<li><b>@Html.ActionLink("Welcome", MVC.Home.Index())</b>
...
z jakiegoś powodu, adresy URL świadczone przez T4MVC obejmują „Area =” na końcu:
<ul id="navHolder">
<li class="level1">
<ul class="mainMenu">
<li><b><a href="/home/index?Area=">Welcome</a></b>
...
nie mam obszary w moim projekcie i ustawiłem wartość "IncludeAreasToken" na wartość false. Co dziwne, dzieje się tak tylko wtedy, gdy wyrenderuję częściowe użycie "@ Html.Action" - jeśli wciągnę to jako "@ Html.Partial" parametr nie zostanie wyrenderowany, a link jest czysty i poprawny. (Nie chcę tego jednak interpretować jako częściowego, więc nie proponujcie tego jako sugestii;)
Czy ktoś tam kiedyś to robił?
Dziękuję - pomogło. –
Właśnie dodałem czek, aby zobaczyć, czy obszar został dostarczony, jeśli tak, dodaję go do słownika: 'if (! String.IsNullOrWhiteSpace (area)) {result.RouteValueDictionary.Add (" Area ", area ??" "); '' –
@BradR: Problem z tą zmianą jest taki, że myślę, że nie zawsze jest to poprawne. Gdy znajdujesz się w widoku Obszar i próbujesz wygenerować link do widoku najwyższego poziomu (poza obszarem), przekazanie pustego obszaru jest właściwą rzeczą, aby "uciec" z bieżącego obszaru. Ale z czekiem, które się nie wydarzy. –