c# - C# MVC 中 Controller 到 Controller 的通信

标签 c# asp.net-mvc

我想在地区 Controller 中使用状态 Controller 列表。有没有更好的主意。 我已经尝试过一个有效的

我通过使用构造函数注入(inject)将这段代码放在区域 Controller 中。

在这种情况下,需要将整个代码放在分区 Controller 中。 有什么办法可以减少代码。有更好的方法吗?

   #region StateDropDown
    public List<SelectListItem> StateDropDown()
    {
        List<SelectListItem> selectListItem = new List<SelectListItem>();
        List<StateViewModel> stateList = Mapper.Map<List<State>, List<StateViewModel>>(_stateBusiness.GetStateForSelectList());
        if (stateList != null)
            foreach (StateViewModel state in stateList)
            {
                selectListItem.Add(new SelectListItem
                {
                    Text = state.Description,
                    Value = state.Code.ToString(),
                    Selected = false
                });
            }
        return selectListItem;
    }
    #endregion StateDropDown

最佳答案

这就是发明“可重用性”一词的原因。将代码放在另一个文件中,并从您想要的任意数量的 Controller 调用它,如下面的代码。

//StateBusiness.cs
public class StateBusiness
{
    public List<SelectListItem> GetStatesForDropdown()
    {
        //your logic here
        return new  List<SelectListItem>();
    }
}

//StateController.cs
public class StateController : Controller
{
    var state = new StateBusiness();

    public ActionResult Index()
    {
        //call your code here 
        var states = state.GetStatesForDropdown();
        //and do whatever you want
        ViewBag.states = states;
        return View();
    }
}

//DistrictController.cs
public class DistrictController : Controller
{
    var state = new StateBusiness();

    public ActionResult Index()
    {
        //call it from here just the same
        var states = state.GetStatesForDropdown();
        ViewBag.states = states;
        return View();
    }
}

关于c# - C# MVC 中 Controller 到 Controller 的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49548374/

相关文章:

c# - 编译 xamarin android (mono for android) 应用程序时不断出现此错误

c# - 当我真的需要继承两个类时如何处理CS1721?

c# - 使用linq使用另一个条件删除一个列表中的元素

asp.net-mvc - Dotnet HighCharts - 位于一页上的多个图表

c# - ASP.NET Identity 检查自定义 UserValidator 实现中是否存在电子邮件

javascript - 更改数据表中使用的参数 ajax url.Action on Ajax.reload

C# : Converting Base Class to Child Class

c# - EF 6 启用迁移找不到上下文

asp.net - 使用 EF Code First 添加 SqlMembership 表

c# - Jquery ajax 调用以在 MVC 中传递 JSON 数组(500 内部服务器错误)