簡體   English   中英

RedirectToAction MVC 5上的ActionExecutingContext.ActionParameters NULL-T4MVC

[英]ActionExecutingContext.ActionParameters NULL on RedirectToAction MVC 5 - T4MVC

我有一個重定向,如:

return RedirectToAction(MVC.Area.Controller.Index(institutionId));

這將重定向到一個從另一個控制器繼承的控制器,該控制器具有如下定義的動作過濾器:

protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
    var institutionId = filterContext.ActionParameters["institutionId"];

    var institution = InstitutionRepository.GetById((int)institutionId);

    ...other code
}

ActionExecutingContext.ActionParameters包含機構ID,但該值始終為NULL。 我也嘗試過重定向到路由,但這給出了相同的輸出。 令我困擾的是,當我查看路線時,似乎使用查詢參數傳遞了機構ID(Area / Controller?institutionId = 17而不是Area / Controller / 17)

MVC代表T4MVC,它是用於避免在重定向中對字符串進行硬編碼的框架。

如果某個時候有人遇到它,那實際上是很棘手的。 在某些情況下,T4MVC似乎使視圖和解釋混亂:

return RedirectToAction(MVC.Area.Controller.Index(institutionId));

return RedirectToAction(MVC.Area.OtherController.Index(institutionId));

查看ActionParameters,該集合在routeData中同時包含Controller和OtherController,因此似乎只是按視圖名稱(索引)查找Controller名稱,找到了屬於兩個Controller的兩個實例,並生成了損壞的MVC重定向字符串。 更改視圖的名稱后,ActionParameters開始正確解析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM