Предположим, есть некоторая модель MyModel, которая содержит поле _count типа int.
public class MyModel
{
private int _count;
public int Count
{
get { return _count; }
set { _count= value; }
}
}
Я хочу визуализировать эту модель. Через контроллер передаю туда _myModel, которую перед этим создаю. Например, так:
public ActionResult Index()
{
MyModel _myModel= new MyModel ();
return View(_myModel);
}
На странице при этом находится кнопка, нажатие которой обрабатывается так:
[HttpPost]
public ActionResult CountUp(ViewModel model)
{
model.Count += 1;
return View(model);
}
Один раз это работает, а потом каждый раз создается модель по новой, в которой все значений ставятся по умолчанию. Я не понимаю, кто ее просит? Я не хочу каждый раз новую модель, я хочу, чтобы визуализировался Сount, который каждый раз будет увеличиваться по нажатию.
Это происходит потому, что вы не сохраняете текущее состояние модели. ASP не находя в форме никаких значений создает модель, заполняя поля значениями по умолчанию.
Для решения добавьте в форму скрытое поле для дальнейшей передачи, но при таком подходе данные легко поменять, открыв html.
View
@model MyModel
...
<div>Count: @Model.Count </div>
...
@using (Html.BeginForm("ControllerName", "CounUp", FormMethod.Post))
{
@Html.HiddenFor(x => x.Count)
<button type="submit">Увеличить значение</button>
}
...
И еще. Вы говорите
Предположим, есть некоторая модель MyModel
А принимаете
public ActionResult CountUp(ViewModel model)
Следовало бы заменить на
public ActionResult CountUp(MyModel model)
Проверьте view: CountUp, каждый ли раз кнопка отправляет POST запрос.
По идее получается так:
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Казалось бы банальный вопрос, но гугл показывает лишь решения для WinForm
Как запускать какой либо метод в определенное время каждый день? Например у меня есть сегодняшняя дата 0605
Доброго времени суток) Подскажите как получить значение из таблицы и присвоить его переменной но мне кажется это можно сделать хранимой...