Хорошо, поэтому я подготовил простое приложение MVC
, чтобы продемонстрировать, как вы можете достичь своей функциональности, используя Hidden
элементы.Программа примет простой пользовательский ввод и отправит его на ActionResult
.Когда будет получено скрытое значение, оно просто скроет ваш селектор чисел.Вы можете адаптировать программу в соответствии с вашими потребностями.
Ваш класс Model
будет выглядеть следующим образом:
namespace ExampleMVC
{
public class SampleViewModel
{
public string inputID { get; set; }
public string lastinputID { get; set; }
}
}
Ваш View
будет выглядеть (индекс):
@model ExampleMVC.SampleViewModel
@{
Layout = null;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSS Includes -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="col-md-6 col-md-offset-3">
<h2>Input your number here</h2>
@using (Html.BeginForm("ConfirmOrder", "Home", FormMethod.Post))
{
<div class="form-group">
@if (Convert.ToInt32(Model.lastinputID) == 0)
{
@Html.EditorFor(model => model.inputID, new { htmlAttributes = new { @type = "number", @min = "1", @max = "99", @placeholder = "Number of ???" } })
}
else
{
<h3>Value recieved, hiding input</h3>
}
@Html.HiddenFor(model => model.lastinputID)
<br>
<br>
Last Value: @Model.lastinputID
</div>
<button type="submit" class="btn btn-success submit">Submit</button>
}
</div>
</div>
</body>
</html>
И ваш Controller
будетвыглядит так:
using System.Web.Mvc;
namespace ExampleMVC.Controllers
{
public class HomeController : Controller
{
[HttpGet]
public ActionResult Index()
{
SampleViewModel sample = new SampleViewModel();
sample.lastinputID = "0";
return View(sample);
}
[HttpPost]
public ActionResult ConfirmOrder(SampleViewModel sample)
{
sample.lastinputID = sample.inputID;
//Do something here
return View("Index",sample);
}
}
}
Надеюсь, это поможет в вашем вопросе.