MVC控制器来存储和显示变量

时间:2019-06-25 09:47:51

标签: asp.net-mvc

我需要一个控制器,单击按钮后,将在模型var1上存储值1或2,具体取决于选择的单选按钮,在var2上将值3或4存储,具体取决于所选的选项从列表中计算出var3(var1 + var2)并将其写在“结果”列的原始数据上。

代码如下:

模型(第1类)

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 个答案:

答案 0 :(得分:1)

您应该使用键入的视图:

@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);
    }