@nordwind2013

Вывод лога калькулятора?

Вот какое дело. Сохраняю значение результата вычисления в стат. лист, затем пытаюсь все значения вывести в некий лог. Однако выводится только последнее. Где я пролетел?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Collections.Concurrent;
namespace FirstCalc.Controllers
{
    public class HomeController : Controller
    {

        public static List<string> History = new List<string>();

        public ActionResult Calc(string arg1, string arg2, string math)
        {
            decimal a = 0;
            decimal b = 0;
            string result = "";

            if (!decimal.TryParse(arg1, out a) || !decimal.TryParse(arg2, out b))
                result = "enter the arguments";

            switch (math)
            {
                case "+":
                    result = "Result:"+(a + b).ToString();
                    break;
                case "-":
                    result = "Result:"+(a - b).ToString();
                    break;
                case "*":
                    result = "Result:"+(a * b).ToString();
                    break;
                case "/":
                    result = b != 0 ?
                    (a / b).ToString()
                    : "error";
                    break;
                default:
                    result = "enter the arguments";
                    break;
            }
            History.Add(result);
            foreach (string r in History)
            {
                result = r;
            }
            return View(model: result);
        }
    }
}

Вот вьюха
@{
    ViewBag.Title = "Calc";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<form action="@Url.Action("Calc", "Home")">
    arg1</nav><input type="text" id="arg1" name="arg1" /><br /><br />
    arg2<input type="text" id="arg2" name="arg2" /><br />
    <output>@Model</output><br />
    <input type="radio" name="math" value="+" />+<br />
    <input type="radio" name="math" value="-" />-<br />
    <input type="radio" name="math" value="*" />*<br />
    <input type="radio" name="math" value="/" />/<br />
    <input type="submit" value="=" />
</form>
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
Если вы все значения получаете вот тут
foreach (string r in History)
            {
                result = r;
            }

то исправьте result = r; к примеру на result+= r;, так как сейчас в result каждый раз заносится новое значение, затирая предыдущее.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы