私は学校のプロジェクトに取り組んでいますが、立ち往生しています。ユーザーから情報を取得し、ユーザーからの入力情報を使用していくつかのことを計算しようとしています。
私は自分のコードを実行していましたが、先生は、計算をロジック レイヤーに置き換える必要があると言いました (それらはコントローラーにありました)。私はそれをやろうとしていますが、行き詰まっています。
これは私のコントローラーです:
public class CalculatorController : Controller
{
// GET: Calculator
public ActionResult PackCalculator()
{
return View(new CalculatorModel());
}
[HttpPost]
public ActionResult PackCalculator(CalculatorModel calculator)
{
CalculatorLogic x = new CalculatorLogic();
int Y = x.calculator(new CalculatorModel());
return View(calculator);
}
そして、これはロジック層のクラスです:
namespace ApexLogic
{
public class CalculatorLogic
{
public int calculator(CalculatorModel calculator)
{
if (calculator.CurrentLevel < 21)
{
calculator.CurrentPack = calculator.CurrentPack + (calculator.CurrentLevel - 1);
int seizoenPacks = calculator.PlayedSeasons * 5;
int BattlepassPacks = calculator.Battlepass * 12;
int CurrentPack = calculator.CurrentPack + seizoenPacks + BattlepassPacks + calculator.BoughtPacks;
return CurrentPack;
}
else if (calculator.CurrentLevel > 21 && calculator.CurrentLevel < 301)
{
int CurrentLevelPack = calculator.CurrentLevel - 20;
int PackCalculator2 = (calculator.CurrentLevel / 2);
int CurrentLevelPack2 = PackCalculator2 + 19;
int seizoenPacks = calculator.PlayedSeasons * 5;
int BattlepassPacks = calculator.Battlepass * 12;
calculator.CurrentPack = calculator.CurrentPack + seizoenPacks + BattlepassPacks +
calculator.BoughtPacks + CurrentLevelPack2;
return calculator.CurrentPack;
}
else if (calculator.CurrentLevel > 300 && calculator.CurrentLevel <= 500)
{
int CurrentLevelPack = calculator.CurrentLevel - 300;
int PackCalculator2 = (CurrentLevelPack / 5);
int CurrentLevelPack2 = PackCalculator2 + 159;
int seizoenPacks = calculator.PlayedSeasons * 5;
int BattlepassPacks = calculator.Battlepass * 12;
calculator.CurrentPack = calculator.CurrentPack + seizoenPacks + BattlepassPacks +
calculator.BoughtPacks + CurrentLevelPack2;
return calculator.CurrentPack;
}
else
{
return 0;
}
}
}
ブレークポイントを使用してどこが間違っているかを確認しようとすると、ユーザーからの入力がクラスに正しく送信されていることがわかりますが、計算が行われておらず、常に 0 が返されます。今何をすべきかわかりません(通常、ブレークポイントで修正しますが、役に立ちません)
しかし、コントローラーの Y は常にゼロのままです。最初の If ステートメントのように return の方法を使用しても、2 番目または 3 番目の if ステートメントで return の方法を使用しても、違いはありません。誰かが私を助けることができますか?