Я попытался увеличить счет при нажатии кнопки (ajax call) в MVC, но значение увеличивается только один раз. На самом деле, я обновляю модель после приращения, но не поддерживает обновленную модель. пожалуйста, предложите, как решить?Как увеличить значение при нажатии кнопки мыши в MVC (ajax call not form submit)?
Моя конечная цель: Что я хочу, это вызов ajax. Я хочу передать модель в actionmethod и сделать некоторое значение для модели и отправить обратно. а при нажатии следующей кнопки я должен отправить обновленную модель. это все.
public class MyModel
{
public int Integer { get; set; }
public string Str { get; set; }
}
public class Test1Controller : Controller
{
[HttpGet]
public ActionResult Index()
{
var m = new MyModel();
return View("Test1", m);
}
[HttpPost]
public ActionResult ChangeTheValue(MyModel model)
{
model.Integer++;
UpdateModel(model);
return Json(model.Integer.ToString());
}
}
enter code here
@model MvcApplication2.Model.MyModel
@{
ViewBag.Title = "Test1";
}
<script src="~/Scripts/jquery-2.2.0.js"></script>
<script src="~/Scripts/jquery-ui-1.11.4.js"></script>
<h2>Test1</h2>
@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "form1" }))
{
<div>
<input type="button" onclick="ajaxcall()" id="changeButton" value="Click Me!" />
<input type="text" value="@Model.Integer" class="txt" id="str" name="str" />
</div>
}
<script type="text/javascript">
function ajaxcall() {
$.ajax({
type: 'POST',
url: '@Url.Action("ChangeTheValue", "Test1")',
data: $('form1').serialize(),
cache: false,
async: true,
success: function (data) {
$("#str").val(data);
},
error: function (data) {
alert("Err " + data);
}
});
}
</script>
Следует отметить, что ваш селектор $ ('form1') ничего не выберет, вероятно, поэтому он не работает. Ваша форма имеет id = "form1", что означает, что вам нужно использовать селектор id (#). $ ("# form1"). serialize(), чтобы получить данные формы для прохождения по запросу ajax. – mhodges