Asp.net 在javascript中使用clic时如何更新视图?
在我的razor视图中,我的模型只有一个属性,它只由一个Asp.net 在javascript中使用clic时如何更新视图?,asp.net,asp.net-mvc,jquery,asp.net-mvc-4,Asp.net,Asp.net Mvc,Jquery,Asp.net Mvc 4,在我的razor视图中,我的模型只有一个属性,它只由一个get组成 @model Contoso.MvcApplication.ViewModels.QuizCompletedViewModel <p>@Model.Property1</p> @model Contoso.mvcapapplication.ViewModels.QuizCompletedViewModel @型号1.不动产1 默认情况下,此属性以值10开头。所有的时间都有这个价值。我想当我在img标
get
组成
@model Contoso.MvcApplication.ViewModels.QuizCompletedViewModel
<p>@Model.Property1</p>
@model Contoso.mvcapapplication.ViewModels.QuizCompletedViewModel
@型号1.不动产1
默认情况下,此属性以值10开头。所有的时间都有这个价值。我想当我在img
标记上按clic时,可以更新此属性(因为该值一直保持不变),如何在不刷新页面的情况下更新属性?步骤1)修改视图,使jquery可以寻址计数器:
@model Contoso.MvcApplication.ViewModels.QuizCompletedViewModel
<p id="my-counter">@Model.Property1</p>
如果确实需要在服务器上增加,请执行以下操作:
步骤2)创建控制器操作以处理增量
public ActionResult Increment(int currentValue)
{
// save to the database, or do whatever
int newValue = currentValue + 10;
DatabaseAccessLayer.Save(newValue);
Contoso.MvcApplication.ViewModels.QuizCompletedViewModel model = new Contoso.MvcApplication.ViewModels.QuizCompletedViewModel();
model.Property1 = newValue;
// If no exception, return the new value
return PartialView(model);
}
步骤3)创建仅返回新值的局部视图
@model Contoso.MvcApplication.ViewModels.QuizCompletedViewModel
@Model.Property1
步骤4)修改jquery以发布到此新操作,该操作返回并显示新计数
$("#my-image").click(function () {
$.get('/MyController/Increment/' + $("#my-counter").html(), function(data) {
$("#my-counter").html(data);
});
});
代码未经测试,但我认为非常接近,希望这给出了正确的想法。我知道需要使用ajax,既然jquery使用ajax,那么如何调用来更新标签呢?这里有一个很好的解释,但我不明白如何表明我对ajax方法的属性感兴趣?在最后一个示例中,使用
表单
$("#my-image").click(function () {
$.get('/MyController/Increment/' + $("#my-counter").html(), function(data) {
$("#my-counter").html(data);
});
});