无法添加两个数字并使用Asp.net MVC获取总数

时间:2019-07-04 04:08:02

标签: asp.net-mvc

我正在尝试在asp.net MVC中做一个简单的计算器程序。我喜欢加两个数字并得到总数。但是我无法完成任务。我是asp.net MVC的初学者。我到目前为止尝试过的代码附在下面。

模型

namespace WebApplication30.Models
{
    public class cal
    {
        public int no1 { get; set; }
        public int no2 { get; set; }

        public int tot { get; set; }

    }
}

控制器

public class CalController : Controller
{      
    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Index(cal c)
    {
        c.tot = c.no1 + c.no2;

        return View(c);

    }

}

**这是一个View传递来自控制器的值**

@model WebApplication30.Models.cal
@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<div class="row">
    @using (Html.BeginForm("Index", "cal", FormMethod.Post))
        {

        <div class="form-group">
            <label for="no">No 1</label>
            <input type="text" class="form-control" id="no1" name="no1">
        </div>
        <div class="form-group">
            <label for="pwd">No 2</label>
            <input type="text" class="form-control" id="no2" name="no2">
        </div>
         <div class="form-group">
            <label for="pwd">total</label>
            <input type="text" class="form-control" id="tot" name="tot">
        </div>
        <button type="submit" class="btn btn-default">Submit</button>
    }
</div>

enter image description here

2 个答案:

答案 0 :(得分:0)

尽管您没有说期望的结果,但我认为您需要总数。

如果我的假设正确,那么有更好的方法可以使用javascript ajax发布

但是对于您的解决方案来说,它需要重新加载整个页面,

通过这种方式将值分配给视图,尽管这会将每个字段实例化为zero

控制器

 public ActionResult Index()
 {
     return View(new cal());
 }

查看

@model cal;


<div class="row">
    @using (Html.BeginForm("index", "cal", FormMethod.Post, new { id = "popupForm" }))
    { 

        <div class="form-group">
            <label for="no">No 1</label>
            <input type="text" class="form-control" id="no1" name="no1" value="@Model.no1">
        </div>
        <div class="form-group">
            <label for="pwd">No 2</label>
            <input type="text" class="form-control" id="no2" name="no2" value="@Model.no2">
        </div>
        <div class="form-group">
            <label for="pwd">total</label>
            <input type="text" class="form-control" id="tot" name="tot" value="@Model.tot">
        </div>
        <button type="submit" class="btn btn-default">Submit</button>
   }
</div>

答案 1 :(得分:0)

您需要将输入值绑定到cal模型。另外,在获得名为的索引动作时需要添加cal模型。

CONTROLLER

using System;
using System.Web.Mvc;
using System.Collections.Generic;
using WebApplication30.Models;

namespace WebApplication30
{
    public class HomeController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            return View(new cal());
        }


      [HttpPost]
      public ActionResult Index(cal c)
      {
        c.tot = c.no1 + c.no2;

        return View(c);

      }
    }
}

查看

@model WebApplication30.Models.cal
@{
    ViewBag.Title = "Index";
}
<body>
<h2>Index</h2>

<div class="row">
    @using (Html.BeginForm("/Index", "Home", FormMethod.Post))
        {

        <div class="form-group">
              <label for="no">No 1</label>
              <input type="text" class="form-control" id="no1" name="no1" value="@Model.no1">
        </div>
        <div class="form-group">
            <label for="pwd">No 2</label>
            <input type="text" class="form-control" id="no2" name="no2" value="@Model.no2">
        </div>
         <div class="form-group">
            <label for="pwd">total</label>
            <input type="text" class="form-control" id="tot" name="tot" value="@Model.tot">
        </div>
        <button type="submit" class="btn btn-default">Submit</button>
    }
</div>
</body>

注意:在提交表单时,在Index之前添加/有时会造成问题。

DEMO