Asp.net 在javascript中使用clic时如何更新视图?

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标

在我的razor视图中,我的模型只有一个属性,它只由一个
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);
    });
});