连接MVC Razor模型对象名称以在JavaScript中使用

连接MVC Razor模型对象名称以在JavaScript中使用,javascript,jquery,asp.net-mvc-4,razor,Javascript,Jquery,Asp.net Mvc 4,Razor,我正在查看另一个开发人员的代码,我忍不住认为应该有更好的方法来清理代码。在过去的一天半里,我一直在寻找和尝试不同的方法。任何帮助都将不胜感激 我们有一个MVC4 Razor网站,我们正在为执行仪表盘开发。该网站正在运行,但性能不是它需要的。我已经开始做代码检查,发现业务逻辑代码都在视图中 我知道逻辑应该主要在模型和控制器中,但他拥有视图中的一切。由于这个项目的复杂性和我们必须提取的数据量,如果可能的话,我想开始通过小步骤重写来清理它 我想处理的第一件事是创建一个例程来处理下面的代码,以便将数百行

我正在查看另一个开发人员的代码,我忍不住认为应该有更好的方法来清理代码。在过去的一天半里,我一直在寻找和尝试不同的方法。任何帮助都将不胜感激

我们有一个MVC4 Razor网站,我们正在为执行仪表盘开发。该网站正在运行,但性能不是它需要的。我已经开始做代码检查,发现业务逻辑代码都在视图中

我知道逻辑应该主要在模型和控制器中,但他拥有视图中的一切。由于这个项目的复杂性和我们必须提取的数据量,如果可能的话,我想开始通过小步骤重写来清理它

我想处理的第一件事是创建一个例程来处理下面的代码,以便将数百行代码减少到一个较小的数目。我计划根据页面上下拉列表的选定值设置分支编号

目前,他声明如下:

var b1 = Model.Branches.Where(b => b.BranchID.Equals(1)).First();
var b2 = Model.Branches.Where(b => b.BranchID.Equals(2)).First();
var b3 = Model.Branches.Where(b => b.BranchID.Equals(3)).First();
...
var branch = $("#BranchList").val();
并在开关中使用这些变量(如下所示):

开关(分支){
案例“城市”:
如果(@(b1.YTDSales)>0{
data1.setCell(0,1,@((Model.deptotals.Where(d=>d.Department.Equals(“ADMIN”)).First().YTDSales1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“ADMIN”).First().YTDSales1,0));
data1.setCell(1,1,@((Model.deptotals.Where(d=>d.Department.Equals(“BUS”)).First().YTDSales1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“BUS”).First().YTDSales1,0));
data1.setCell(2,1,@((Model.deptotals.Where(d=>d.Department.Equals(“F&I”)).First().YTDSales1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“F&I”).First().YTDSales1,0));
data1.setCell(3,1,@((Model.deptotals.Where(d=>d.Department.Equals(“新”)).First().YTDSales1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“新”).First().YTDSales1,0));
data1.setCell(4,1,@((Model.deptotals.Where(d=>d.Department.Equals(“PARTS”)).First().YTDSales1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“PARTS”).First().YTDSales1,0));
data1.setCell(5,1,@((Model.deptotals.Where(d=>d.Department.Equals(“服务”)).First().YTDSales1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“服务”).First().YTDSales1,0));
data1.setCell(6,1,@((Model.deptotals.Where(d=>d.Department.Equals(“USED”)).First().YTDSales1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“USED”).First().YTDSales1,0));
}否则{
draw1=假;
}
如果(@(b1.YTDGP)>0{
data2.setCell(0,1,@((Model.deptotals.Where(d=>d.Department.Equals(“ADMIN”)).First().YTDGP1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“ADMIN”).First().YTDGP1,0));
data2.setCell(1,1,@((Model.deptottals.Where(d=>d.Department.Equals(“总线”)).First().YTDGP1<0?0:Math.Round(Model.deptottals.Where(d=>d.Department.Equals(“总线”).First().YTDGP1,0));
data2.setCell(2,1,@((Model.deptotals.Where(d=>d.Department.Equals(“F&I”)).First().YTDGP1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“F&I”).First().YTDGP1,0));
data2.setCell(3,1,@((Model.deptotals.Where(d=>d.Department.Equals(“新”)).First().YTDGP1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“新”).First().YTDGP1,0));
data2.setCell(4,1,@((Model.deptotals.Where(d=>d.Department.Equals(“PARTS”)).First().YTDGP1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“PARTS”).First().YTDGP1,0));
data2.setCell(5,1,@((Model.deptotals.Where(d=>d.Department.Equals(“服务”)).First().YTDGP1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“服务”).First().YTDGP1,0));
data2.setCell(6,1,@((Model.deptotals.Where(d=>d.Department.Equals(“USED”)).First().YTDGP1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“USED”).First().YTDGP1,0));
}否则{
draw2=假;
}
如果(@(b1.YTDNetProfit)>0){
data3.setCell(0,1,@((Model.deptotals.Where(d=>d.Department.Equals(“ADMIN”)).First().YTDNetProfit1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“ADMIN”).First().YTDNetProfit1,0));
data3.setCell(1,1,@((Model.deptotals.Where(d=>d.Department.Equals(“BUS”)).First().YTDNetProfit1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“BUS”).First().YTDNetProfit1,0));
数据3.setCell(2,1,@((Model.deptotals.Where(d=>d.Department.Equals(“F&I”)).First().YTDNetProfit1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“F&I”).First().YTDNetProfit1,0));
data3.setCell(3,1,@((Model.deptotals.Where(d=>d.Department.Equals(“NEW”)).First().YTDNetProfit1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“NEW”).First().YTDNetProfit1,0));
data3.setCell(4,1,@((Model.deptotals.Where(d=>d.Department.Equals(“PARTS”)).First().YTDNetProfit1<0?0:Math.Round(Model.deptotals.Where(d=>d.Department.Equals(“PARTS”).First().YTDNetProfit1,0));
data3.setCell(5,1,@((Model.deptottals.Where(d=>d.Department.Equals(“SERVICE”)).First().YTDNetProfit1<0?0:Math.Round(Model.deptototta
switch (branch){
                case "City":
                    if (@(b1.YTDSales) > 0) { 
                        data1.setCell(0, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("ADMIN")).First().YTDSales1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("ADMIN")).First().YTDSales1, 0))));
                        data1.setCell(1, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("BUS")).First().YTDSales1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("BUS")).First().YTDSales1, 0))));
                        data1.setCell(2, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("F&I")).First().YTDSales1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("F&I")).First().YTDSales1, 0))));
                        data1.setCell(3, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("NEW")).First().YTDSales1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("NEW")).First().YTDSales1, 0))));
                        data1.setCell(4, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("PARTS")).First().YTDSales1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("PARTS")).First().YTDSales1, 0))));
                        data1.setCell(5, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("SERVICE")).First().YTDSales1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("SERVICE")).First().YTDSales1, 0))));
                        data1.setCell(6, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("USED")).First().YTDSales1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("USED")).First().YTDSales1, 0))));
                    } else { 
                        draw1 = false; 
                    }
                    if (@(b1.YTDGP) > 0) { 
                        data2.setCell(0, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("ADMIN")).First().YTDGP1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("ADMIN")).First().YTDGP1, 0))));
                        data2.setCell(1, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("BUS")).First().YTDGP1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("BUS")).First().YTDGP1, 0))));
                        data2.setCell(2, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("F&I")).First().YTDGP1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("F&I")).First().YTDGP1, 0))));
                        data2.setCell(3, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("NEW")).First().YTDGP1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("NEW")).First().YTDGP1, 0))));
                        data2.setCell(4, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("PARTS")).First().YTDGP1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("PARTS")).First().YTDGP1, 0))));
                        data2.setCell(5, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("SERVICE")).First().YTDGP1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("SERVICE")).First().YTDGP1, 0))));
                        data2.setCell(6, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("USED")).First().YTDGP1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("USED")).First().YTDGP1, 0))));
                    } else {
                        draw2 = false; 
                    }
                    if (@(b1.YTDNetProfit) > 0) { 
                        data3.setCell(0, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("ADMIN")).First().YTDNetProfit1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("ADMIN")).First().YTDNetProfit1, 0))));
                        data3.setCell(1, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("BUS")).First().YTDNetProfit1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("BUS")).First().YTDNetProfit1, 0))));
                        data3.setCell(2, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("F&I")).First().YTDNetProfit1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("F&I")).First().YTDNetProfit1, 0))));
                        data3.setCell(3, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("NEW")).First().YTDNetProfit1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("NEW")).First().YTDNetProfit1, 0))));
                        data3.setCell(4, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("PARTS")).First().YTDNetProfit1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("PARTS")).First().YTDNetProfit1, 0))));
                        data3.setCell(5, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("SERVICE")).First().YTDNetProfit1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("SERVICE")).First().YTDNetProfit1, 0))));
                        data3.setCell(6, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("USED")).First().YTDNetProfit1 < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("USED")).First().YTDNetProfit1, 0))));
                    } else {
                        draw3 = false; 
                    }
                    data4.addRows(1);
                    data4.setCell(0, 0, '@(b1.BranchCode)');
                    data4.setCell(0, 1, @(Math.Round(b1.YTDSales, 0)));
                    data5.addRows(1);
                    data5.setCell(0, 0, '@(b1.BranchCode)');
                    data5.setCell(0, 1, @(Math.Round(b1.YTDTotalExp * -1, 0)));
                    break;
...
var BranchID = null;
switch (branch){
    case "Atlanta":
        BranchID = 1;
        BRModel = "b"+BranchID <-- This would be used below.
        break;

    default:
        break;
}

if (@(**BRModel**.YTDSales) > 0) { 
    data1.setCell(0, 1, @((Model.DeptTotals.Where(d => d.Department.Equals("ADMIN")).First().YTDSales**[BranchID]** < 0 ? 0 : Math.Round(Model.DeptTotals.Where(d => d.Department.Equals("ADMIN")).First().YTDSales**[BranchID]**, 0))));
...