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属性,所以我们要有个清空操作。

原文地址:https://www.cnblogs.com/wcrBlog/p/10996836.html

时间: 2024-10-16 17:13:12

MVC Html.ActionLink Area 链接中含区域的页面之间的跳转的相关文章

WinForm中回车键实现文本框之间的跳转

利用窗体的KeyPreView .设置KeyPreView = true 设置窗体的KeyPreView 属性为True后,那么窗体内的子控件响应KeyPress事件(或其他事件)之前,会先响应窗体的KeyPress事件.如下图,如果按下了Enter键, 则会先执行Form4_KeyPress,然后再执行textBox1_KeyPress. this.SelectNextControl(this.ActiveControl, true, true, false, false)意思是激活下一个控件

php--tp中页面之间的跳转

__MODULE__   不同控制器之间进行跳转 __APP__  /  __URL__  用的比较多

在ASP.NET MVC控制器中获取链接中的路由数据

在ASP.NET MVC中,在链接中附加路由数据有2种方式.一种是把路由数据放在匿名对象中传递: <a href="@Url.Action("GetRouteData","Home",new { ReturnUrl = Request.Url.PathAndQuery, x = 10})">走你</a> 一种是放在RouteValueDictionary对象中传递: <a href="@Url.Action

在MVC中添加区域的真正正确的方法!

本文是自己1天时间的找原因的结果.上午遇到坑,在网上搜索了无数资料,呵呵,不管是高手.还是菜鸟的文章,都是没有把问题说清楚,在关键地方留了一个大坑,也需我的问题太初级了吧,别人都略过了,呵呵.言归正传(高手请飘过): 在MVC中添加区域Admin,调试时报错: 而我的所有的路由信息都是按网上千篇一律的教材来到配置的,简而言之就是配置AdminAreaRegistration.cs文件和RouteConfig.cs,不清楚的百度. 花费了我将近一天时间查资料,到群里请教,呵呵,没有答案.后来还是我

MVC中的区域

authour: chenboyi updatetime: 2015-05-03 08:26:30 friendly link:   目录: 1,思维导图 2,AreaRegistration类的RegisterAllAreas方法 3,区域文件夹Areas 4,一个继承AreaRegistration的子类 5,区域下的Controllers和Views文件夹 6,将区域中的控制器单独存放到某个类库中进行管理 1,思维导图: 2,AreaRegistration类的RegisterAllAre

在ASP.NET MVC中使用区域来方便管理controller和view

在ASP.NET MVC中使用区域来方便管理controller和view 在mvc架构中,一般在controllers和views中写所有控制器和视图, 太多控制器时候,为了方便管理,想要将关于person的所有控制器放在一个文件夹里面,这样就容易查看和管理. 这时候在WEB下面创建一个Areas文件夹.(和Controllsers文件夹同级) 然后在Areas里面右键选择新建区域. 会自动创建一个路由信息,和web.comfig还有controllers文件夹等. 这时候就可以很清晰的管理和

在Asp.Net Core中添加区域的简单实现

使用区域,可以有效的对业务进行隔离,各种业务及分工可以更灵活.在Asp.Net Core中启用区域也是极简单的. 使用步骤: 1.在 Startup.cs 中添加区域的路由: app.UseMvc(routes => { routes.MapRoute( name: "area", template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"); routes.MapRoute( name:

MVC使用Dotnet.HighCharts做图表01,区域图表

如果想在MVC中使用图表显示的话,DotNet.HighCharts是不错的选择.DotNet.HighCharts是一个开源的JavaScript图表库,支持线型图表.柱状图标.饼状图标等几十种图标.本篇实现一个简单的区域图表. 在NuGet中输入关键字"DotNet.HighCharts". 安装完后,在Scripts和程序集下多了HighCharts相关文件. HomeController中. using System.Collections.Generic; using Sys

Halcon学习之六:获取Image图像中Region区域的特征参数

area_center_gray ( Regions, Image : : : Area, Row, Column )    计算Image图像中Region区域的面积Area和重心(Row,Column). cooc_feature_image ( Regions, Image : : LdGray, Direction : Energy,Correlation, Homogeneity, Contrast )   计算共生矩阵和推导出灰度特征值 Direction:灰度共生矩阵计算的方向