从继承WebViewPage< >的类调用RenderAction和Partial

本文关键字:调用 RenderAction Partial 继承 WebViewPage | 更新日期: 2023-09-27 18:04:53

我有MVC 5项目,我有一堆视图,我已经在网络上设置了它。从WebViewPage继承自定义类,这样我就可以添加所有视图都可以使用的属性/方法。

public abstract class SCView<T> : WebViewPage<T> 
{

}

我碰巧有一点表示逻辑(是的,我知道,不是很好-但我必须这样做,出于很多不同的原因)。逻辑很简单,如下所示:

if([condition])
            {
                Html.RenderAction("DoThis", "Page", new { Area = "Common", model = Model, viewname = "TitlePanel" });
            }
            else if([another condition])
            {
                Html.Partial("/Areas/Common/Views/Media/TitlePanelEdit.cshtml", Model) *@
            }

基本上,如果满足第一个条件,我需要显示某个控制器动作-否则,呈现不同的部分视图。

我不想在每个视图中都这样做-所以我希望以某种方式将此逻辑合并到CustomView类中。然而,我发现Html助手方法不能直接在这个类中使用-如果我在控制器中,这显然会更容易。有没有什么方法可以让这个逻辑集中起来?

从继承WebViewPage< >的类调用RenderAction和Partial

也许我在你的问题中遗漏了一些东西,然而,在我看来,你只需要标准化你的呼叫。

要么选择

    @Html.Action
    @Html.Partial

    @Html.RenderAction
    @Html.RenderPartial

而不是混合类型,那么你的viewbase逻辑将能够返回相同的类型,要么在渲染的情况下无效…这些输出到流,或者mvchtmlstring如果你使用非渲染版本