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屬性來實現跳轉,如下:

            <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屬性呢?而且值還為空。

這是因為我們在點擊完帶Area屬性的功能,再去點擊不帶Area屬性的功能時會沿用上一個頁面的Area屬性,所以我們要有個清空操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM