Итак, я только начал создавать новый проект mvc. Я сделал календарь (сам по себе), который отображает дни месяца. Он имеет две кнопки, которые позволяют получить Back
и Forth
месяцами в году. Поэтому моя проблема в том, что я сделал для него нужный Javascript. Логика находится в Модели.Модель обновления в контроллере
Теперь каждый раз время sb. хиты, например, кнопки Forth
, представление создает HttpPost, который должен отправить модель с логикой контроллеру.
Контроллер должен обновить значение и отправит «новый вид» с обновленной моделью.
Вот небольшая демонстрация, которая объясняет мою проблему более простой. В этом случае я хочу увеличивать (Model) -переменная «Number» на 1 каждый раз при sb. нажимает кнопку. Но я не хочу использовать Javascript. Это возможно.
Текущее состояние: Если я нажму кнопку Add
, переменная «Число» будет увеличиваться на 1, только один раз. Впоследствии он просто ничего не делает. Каким-то образом модель действительно обновляется до представления. Что я делаю не так?
Модель
public class TestModel
{
public int Number = -10;
}
Посмотреть
@model MyProject.Models.TestModel
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
<h4>TestModel</h4>
<hr />
</div>
@using (Html.BeginForm())
{
@Html.DisplayFor(model => model.Number)
<p>
<input id="BtnAdd" name="myButton" type="submit" value="Add" />
</p>
}
</body>
</html>
Контроллер
public class TestController : Controller
{
public TestModel currView = new TestModel();
// GET: Test
public ActionResult Index()
{
//Main
return View(currView);
}
[HttpPost]
public ActionResult Index(TestModel model)
{
model.Number += 1;
//ModelState.Clear();
//Somehow the model doesnt get passed correctly
return View(model);
}
}
Спасибо за любую помощь! =)
Я только что внес изменения, как и я, и Slappywag. Но каким-то образом он обновляет ** только одни **. В твоем случае. Значение равно 10, и после нажатия кнопки он доходит до 11 и остается там. – C0d1ngJammer
Я не касался индекса (POST). Его по-прежнему тот же метод – C0d1ngJammer
@manuchao Вам нужно очистить словарь состояния модели. См. Мой обновленный ответ. – Shyju