ASP.NET MVC: как напечатать переменную, возвращаемую из контроллера, в представление при загрузке страницы? - PullRequest
0 голосов
/ 14 июня 2019

Я хочу суммировать все значения в столбце моей таблицы в базе данных SQL и отобразить его при самой загрузке страницы.Я сделал следующее:

public ActionResult Sumthem() {
    string constr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
    SqlConnection con = new SqlConnection(constr);
    SqlCommand cmd = new SqlCommand("SELECT SUM (Final) FROM SomeTable", con);
    cmd.Connection.Open();    


    ViewBag.FinalSUM = cmd.ExecuteScalar().ToString();

    return View("Records");   
}     

Я хочу напечатать его так (в представлении Records.cshtml):

@{var sum = ViewBag.FinalSUM;}
<h2>The Total is: @sum</h2>

Где и как мне вызвать метод контроллера?Я попытался @Url.Action("Sumthem", "Records") в Razor, но метод контроллера не вызывался.Как я могу вернуть и распечатать значение суммы, как только страница загрузится?

Редактировать: я пытался это сделать после этого, но произошла ошибка System.StackOverflow

@{Html.RenderAction("Sumthem", "Records");
var sum = ViewBag.FinalSUM;}
<h2>The Total is: @sum</h2>
//Returned PartialView instead of View from the Controller.

1 Ответ

0 голосов
/ 14 июня 2019

Действие

public ActionResult Sumthem() {
    string constr = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
    using (SqlConnection con = new SqlConnection(constr))
    {
        SqlCommand cmd = new SqlCommand("SELECT SUM (Final) FROM SomeTable", con);
        cmd.Connection.Open();

        ViewBag.FinalSUM = cmd.ExecuteScalar().ToString();

        return PartialView("Records", new YourModel())
    }   
}    

Частичное представление (Records.chstml):

@model YourModel
@*You can use data from your model as well*@
<h2>The Total is: @ViewBag.FinalSUM</h2>

Использование (в любом представлении, где вам действительно нужно отобразить общее значение):

@Html.RenderAction("Sumthem", "Records")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...