如何在MVC中将区域控制器重定向到根控制器

时间:2018-03-05 17:11:49

标签: asp.net-mvc asp.net-mvc-4

我创建的区域名为" 动画书"在其中,我创建了控制器" 邀请"。我在里面查看" 索引"邀请控制器的动作。在这个视图中,我有一个动作链接,它重定向到我的根控制器动作。

enter image description here 在视图中,我使用以下代码创建了Action链接。

<a href="@Url.Action("Index","Home", new { area="" })">Click to Confirm</a>

但它会将我重定向到同一区域&#34; 动画书&#34;。但是我的预期行动不在同一区域内,而是在根控制器中。

1 个答案:

答案 0 :(得分:2)

对于我来说,下面的行正常工作,新的{area =“”}重定向根控制器。

RegisterRoutes

检查RouteConfig.csroutes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); 中配置的默认路由。配置路由操作的默认路由,该路由不在“FlipBook”区域内。这将解决您的问题。 for.e.g。

public static boolean setupAlarm(String flightName, long columnId, int time,int requestCode, Context context) {
    AlarmManager alarmManager;


    FlightTimeObject timeObject = DataCheckingUtils.getConvertedTime(time);

    try {
        alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

        Intent intent = new Intent(context.getApplicationContext(), ProcessAlarmReceiver.class);
        intent.putExtra(IntentActions.INTENT_REQUEST_CODE, requestCode);
        intent.putExtra(IntentActions.INTENT_SEND_STRING_FLIGHT, flightName);
        intent.putExtra(IntentActions.INTENT_SEND_FLIGHT_COLUMN_ID, columnId);


        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, requestCode, intent,0);

        //Get calendar instance
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());

        //get hour
        if (timeObject.getHour()!= -1) {
            int hour = timeObject.getHour();
            calendar.set(Calendar.HOUR_OF_DAY, hour);
        }

        //get minute
        if (timeObject.getMinute()!=-1){
            int minute = timeObject.getMinute();
            calendar.set(Calendar.MINUTE, minute);
        }

        calendar.set(Calendar.SECOND, 0);

        assert alarmManager != null;

        alarmManager.setExact(AlarmManager.RTC_WAKEUP,
                calendar.getTimeInMillis(),
                pendingIntent);
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
    return true;
}