Tôi vẽ một trình đơn từ một hành động một phần trực tiếp đến việc bố trí, sử dụng "Diện tích =?":T4MVC @ Url.Action (MVC.Controller.Action()) Renders Parameter trong QueryString
@Html.Action(MVC.Menu.Index())
này hành động, xác định Menu nào sẽ hiển thị. Ví dụ, một menu công cộng một phần. Trong các partials, tôi cũng đang sử dụng T4MVC để render các liên kết:
<ul id="navHolder">
<li class="level1">
<ul class="mainMenu">
<li><b>@Html.ActionLink("Welcome", MVC.Home.Index())</b>
...
Đối với một số lý do, url đưa ra bởi T4MVC bao gồm "Diện tích =?" Ở cuối:
<ul id="navHolder">
<li class="level1">
<ul class="mainMenu">
<li><b><a href="/home/index?Area=">Welcome</a></b>
...
Tôi có NO các khu vực trong dự án của tôi và tôi đã biến cài đặt "IncludeAreasToken" thành false. Thật kỳ lạ, điều này chỉ xảy ra nếu tôi hiển thị một phần bằng cách sử dụng "@ Html.Action" - nếu tôi kéo nó thành "@ Html.Partial" thì tham số không được hiển thị và liên kết sẽ sạch và chính xác. (Tôi không muốn hiển thị nó như là một phần mặc dù, vì vậy xin vui lòng không cung cấp đó như là một gợi ý;)
Bất cứ ai ra có chạy vào điều này trước?
Cảm ơn bạn - điều đó đã giúp ích. –
Tôi chỉ cần thêm một kiểm tra để xem nếu khu vực đã được cung cấp, nếu vậy tôi thêm nó vào từ điển: 'if (! String.IsNullOrWhiteSpace (khu vực)) {result.RouteValueDictionary.Add (" Area ", area ??" ");} ' –
@BradR: vấn đề với thay đổi này là tôi nghĩ rằng nó không phải lúc nào cũng đúng. Khi bạn đang ở trong chế độ xem Vùng và bạn đang cố gắng tạo liên kết đến chế độ xem cấp cao nhất (không phải Khu vực), thì việc chuyển vùng trống là điều chính xác cần thực hiện để 'thoát' khu vực hiện tại. Nhưng với việc kiểm tra của bạn sẽ không xảy ra. –