MVC Html.ActionLink Area 連接中含區域的頁面之間的跳轉

 

例如我有一個需求,使用@Html.ActionLink實現不一樣功能之間的跳轉,有部分Control是在Area之下,這種時候咱們應該如何實現區域間的跳轉呢?微信

錯誤用例:微信支付

 <ul class="nav navbar-nav">
                    <li>@Html.ActionLink("主頁", "Index", "Home")</li>
                    <li>@Html.ActionLink("退款申請用例", "Index", "Refund")</li>
                    <li>@Html.ActionLink("微信掃一掃用例", "Index", "ScanQRCode")</li>
                </ul>

因爲個人RefundControl存在於WxPay這個區域下,上述寫法會提示說找不到Refund這個頁面,也對上述寫法生成的完整連接是 /Refund,而正確連接是  /WxPay/Refund,天然是找不到了,此時咱們能夠經過定義Html.ActionLink的RouterValues屬性來實現跳轉,以下:spa

            <div class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li>@Html.ActionLink("主頁", "Index", "Home")</li>
                    <li>@Html.ActionLink("網頁受權用例", "Index", "LoginAuth", new { Area = "" }, null)</li>
                    <li>@Html.ActionLink("消息羣發用例", "Index", "MsgSend", new { Area = "" }, null)</li>
                    <li>@Html.ActionLink("微信支付用例", "Index", "Products", new { Area = "WxPay" }, null)</li>
                    <li>@Html.ActionLink("退款申請用例", "Index", "Refund", new { Area = "WxPay" }, null)</li>
                    <li>@Html.ActionLink("微信掃一掃用例", "Index", "ScanQRCode", new { Area = "" }, null)</li>
                </ul>
            </div>

爲何「網頁受權用例」也須要設置Area屬性呢?並且值還爲空。code

這是由於咱們在點擊完帶Area屬性的功能,再去點擊不帶Area屬性的功能時會沿用上一個頁面的Area屬性,因此咱們要有個清空操做。blog

相關文章
相關標籤/搜索