【问题标题】:How to deal with two classes using methods from eachother?如何使用彼此的方法处理两个类?
【发布时间】:2020-11-21 21:33:09
【问题描述】:

我在 C# 中实现 MVC,控制器有一个属性 View 来调用它的方法。我的问题是,在视图中,当用户按下按钮时,我想通知控制器,换句话说,我需要从视图中访问控制器类的功能。所以我在我的视图中添加了一个属性控制器。现在这行得通,但感觉又错又紧。去这里的路是什么?这是一个示例源代码:

class Controller
{
    public void DoSomething() { }

    public void SetView (View v)
    {
        this.view = v;
    }

    private View view;
}

class View
{
    public void SetController(Controller c)
    {
        this.controller = c;
    }


    public void OnButtonPress()
    {
        controller.DoSomething();
    }

    private Controller controller;
}

【问题讨论】:

  • 为单击视图的按钮创建一个事件处理程序或可观察的,以便控制器可以订阅它。这样视图就不需要对控制器有任何依赖

标签: c# model-view-controller dependencies


【解决方案1】:

MVC 是这样构建的,因此控制器、模型和视图是分开的,并且易于修改而不会影响另一个

控制器应该只有实际的逻辑,而视图只是向用户展示

尝试将此添加到您的视图(html 页面):

@Html.ActionLink("linktext", "OnButtonPress", "ControllerName",new { @class = "yourButtonClass" })

然后使用您想要的任何逻辑将该方法添加到您的控制器类中:

class controller
{
    public IActionResult OnButtonPress()
    {
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    相关资源
    最近更新 更多