Не удалось добавить два числа и получить итоговое значение с помощью Asp.net MVC - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь сделать простую программу калькулятора в 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);

    }

}

**Это просмотр передачи значений из контроллера **

@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>

введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

Вам необходимо привязать входное значение к Cal Model. Кроме того, необходимо добавить модель cal, когда вызывается действие index.

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

      }
    }
}

VIEW

@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>

ПРИМЕЧАНИЕ: добавить / перед индексом при отправке формы это иногда создает проблему.

DEMO

0 голосов
/ 04 июля 2019

Хотя вы не сказали, каким должен быть ваш желаемый результат, я предположил, что вам нужно общее количество.

Если мое предположение верно, есть лучшие способы сделать это, используя javascript ajax post

, но для вашего решения, которое выполняет полную перезагрузку страницы,

присваивает значения представлению таким образом, хотя это создаст для каждого поля значение zero

Controller

 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...