MVC контроллер для хранения и отображения переменных - PullRequest
3 голосов
/ 25 июня 2019

Мне нужен контроллер, который одним нажатием кнопки будет хранить на модели var1 значение 1 или 2, в зависимости от того, какой переключатель выбран, сохранить на var2 значение 3 или 4 в зависимости от выбранного параметра. из списка и после этого вычислите var3 (var1 + var2) и запишите его в строку столбца «result».

Вот код:

Модель (Class1)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Test1.Models
{
    public class Class1
    {
        public int var1 { get; set; }
        public int var2 { get; set; }
        public int var3 { get; set; }

    }
}

Контроллер (HomeController)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Test1.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Page()
        {
            return View();
        }
    }
}

Просмотр (Страница)

@model Test1.Models.Class1
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Page</title>
</head>
<body>
    <div>
        @using (Html.BeginForm("Page", "Class1", FormMethod.Post)) //should I use this without the FormMethod.Post?
        {
            <table style="width:100%" align="center" cellpadding="10">
                <tr>
                    <th>1</th>
                    <th>2</th>
                    <th>var2</th>
                    <th>Result</th>
                </tr>

                <tr>
                    <td> @Html.RadioButtonFor(m => m.var1, "1") </td>
                    <td> @Html.RadioButtonFor(m => m.var1, "2") </td>
                    <td> @Html.DropDownListFor(m => m.var2, new List<SelectListItem>
                            {new SelectListItem{Text="3", Value="3"},
                            new SelectListItem{Text="4", Value="4"}})
                    </td>
                    <td></td>
                </tr>
            </table>
        }
            <input id="Button1" type="button" value="button"/>
    </div>
</body>
</html>

1 Ответ

1 голос
/ 25 июня 2019

Вы должны использовать типизированный вид:

@model Simulador; 
    <!DOCTYPE html>

    <html>
    <head>
    <meta name="viewport" content="width=device-width" />


    </head>
    <body>
    <div>

    @using (Html.BeginForm("Simular", "Simulador", FormMethod.Post))
        {

    <table>
    <td align="left"> Result</td>
                    <td align="center"> @Html.RadioButtonFor(m => m.Var1, "5") </td>
                    <td align="center"> @Html.RadioButtonFor(m => m.Var1, "4") </td>
                    <td align="center"> @Html.RadioButtonFor(m => m.Var1, "3") </td>
                    <td align="center"> @Html.RadioButtonFor(m => m.Var1, "2") </td>
                    <td align="center"> @Html.RadioButtonFor(m => m.Var1, "1") </td>
                    <td align="center"> @Html.RadioButtonFor(m => m.Var1, "0") </td>
                    <td align="center">
                        @Html.DropDownListFor(m => m.Var2, new List<SelectListItem>
                            {new SelectListItem{Text="low", Value="1"},
                            new SelectListItem{Text="medium", Value="2"},
                            new SelectListItem{Text="high", Value="3"},
                            new SelectListItem{Text="very high", Value="4"}}
    </td>

    <p id="var"></p>


    <input type="submit" value="Submit" onclick="givevar3()" />

    }

    </div>
    </body>

    </html>

Затем попытайтесь вернуть модель в return View(); функцию

[HttpPost]
    public ActionResult Simular(Simulador simulador)
    {
        int var1 = simulador.Var1;
        int var2 = simulador.Var2;
        int var3 = simulador.Var3 = (simulador.Var2 + simulador.Var1)         *5; 
        return View(simulador);
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...