DotNet MVC 不允许子操作执行重定向操作

本文探讨了在DotNet MVC框架中,使用Html.RenderAction呈现分部视图时遇到的问题:分部视图控制器尝试执行RedirectToAction导致的混乱。解决方案是将重定向方法替换为返回视图。问题关键在于,子操作中的重定向会破坏页面结构,正确做法是避免在分部视图中执行重定向操作。

目录

问题场景

在内容视图中使用Html.RenderAction展现分部视图时,在分部视图的Controllers方法中使用RedirectToAction方法进行重定向;部分代码如下:

分部视图部分代码

<div class="subMenu">
            @{
                Html.RenderAction("Left", "Common", new { MenuId =Model[0].PartID });
            }
        </div>

Left视图部分代码

public ActionResult Left(int? partId)
        {            
            return RedirectToAction("Index", "Home");
        }

解决方法

将“Left”分部视图中的“return RedirectToAction(“Index”, “Home”);”重定向方法修改为视图展示即可解决此问题,如:

public ActionResult Left(int? partId)
        {
            return View("_Left");
        }

问题所在

在分部视图中(也就是所谓的子操作)中如果做了重定向,这个时候展示的有可能就不是一个分部视图,这样会导致整个机制混乱,而且页面的显示也是混乱的,这个问题仔细想下还是很好理解的。

以上为个人的理解,如有兴趣请留言细谈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值