Javascript 成功调用ajax后更改@Html.DisplayFor项

Javascript 成功调用ajax后更改@Html.DisplayFor项,javascript,jquery,asp.net,ajax,asp.net-mvc,Javascript,Jquery,Asp.net,Ajax,Asp.net Mvc,所以这个标题很好地说明了我在努力做什么,我很确定我找到了正确的道路,或者至少我这么认为。但在重新加载整个视图之前,该值不会更新 html: @DisplayNameFor(model=>model.Name) @DisplayNameFor(model=>model.AktivBalance) @DisplayNameFor(model=>model.BarBalance) @DisplayNameFor(model=>model.HasAllInclusive) @foreach(模型中的v

所以这个标题很好地说明了我在努力做什么,我很确定我找到了正确的道路,或者至少我这么认为。但在重新加载整个视图之前,该值不会更新

html:


@DisplayNameFor(model=>model.Name)
@DisplayNameFor(model=>model.AktivBalance)
@DisplayNameFor(model=>model.BarBalance)
@DisplayNameFor(model=>model.HasAllInclusive)
@foreach(模型中的var项目){
@DisplayFor(modelItem=>item.Name)
@DisplayFor(modelItem=>item.AktivBalance)



@DisplayFor(modelItem=>item.BarBalance)

@DisplayFor(modelItem=>item.HasAllInclusive) @ActionLink(“Rediger”,“Edit”,new{id=item.ChildId})| @ActionLink(“Detaljer”,“Details”,new{id=item.ChildId})| @ActionLink(“Slet”,“Delete”,new{id=item.ChildId}) }
脚本:

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
    // document ready
    $(document).ready(function() {


        $(document.body).on("click", ".vieweditaddaktiv", function () {
            // test for at se om den får fat i de rigtige værdier, hvilket den gør.
            //alert("amount = " + $(this).parent().children(".viewedittext").val() + " id = " + $(this).data("childid") + ".");

            // værdierns sti bruges til at lave data variablen der skal videresendes. (ifølge vs bruger jeg nu de rette naming conventions i controlleren)
            var data = {
                Amount: $(this).parent().children(".viewedittext").val(),
                Id: $(this).data("childid")
            };

            // Jeg kan ikke sætte breakpoint og teste koden, der sker bare ingenting? Hvorfor virker intet herfra?
            $.ajax({
                type: 'POST',
                url: "@Url.Action("AddAktiv", "Default1")", // kalder på metoden der returnerer Json resultatet i controlleren.
                data: JSON.stringify(data),
                dataType: 'json',
                contentType: "application/json; charset=utf-8",
                success: function(returnedData) {
                    //alert(returnedData);
                    $(this).parent().children(".changeaktbalance").html(returnedData);

                },
                error: function() {
                    alert("An unexpected error has occured.");
                }
            });



        }); // End of vieweditaddaktiv.



    }); // End of document ready function.


</script>

//文件准备就绪
$(文档).ready(函数(){
$(document.body){
//在瑞典维克特市的一家工厂进行现场脂肪测试。
//警报(“amount=“+$(this.parent().children”(.viewedittext”).val()+“id=“+$(this.data)(“childid”)+”);
//værdierns sti bruges直到skal videresendes的数据变量。(ifølge vs bruger jeg nu de rette命名约定i controlleren)
风险值数据={
金额:$(this.parent().children(“.viewedittext”).val(),
Id:$(this).data(“childid”)
};
//这是一个很好的测试断点,你认为是什么?
$.ajax({
键入:“POST”,
url:@url.Action(“AddAktiv”,“Default1”),//kalder påmetoden der returnerer Json resultate i controlleren。
数据:JSON.stringify(数据),
数据类型:“json”,
contentType:“应用程序/json;字符集=utf-8”,
成功:函数(返回数据){
//警报(返回数据);
$(this.parent().children(“.changeaktbalance”).html(returnedData);
},
错误:函数(){
警报(“发生意外错误”);
}
});
});//vieweditaddaktiv的结尾。
}); // 文档结束准备功能。

我只需要启动脚本的按钮的父目录中的特定displayfor,因此我需要在ajax调用成功场景中更改代码,但我不确定如何更改?

这个
jquery中。ajax
成功处理程序指向当前请求的ajax设置对象。如果要使用它来引用其他内容,请使用
上下文
选项:

$.ajax({
    context: this,
    // rest of your code goes here

这样,您在成功处理程序中使用的选择器就可以工作了

@Html.DisplayFor只是一个Html助手方法,它将被编译成Html。当您进行AJAX调用时,这与此无关--您需要手动修改DOM.post操作。嗯,我想我理解您的意思,但我不太确定如何更改它?你指的是什么行动?如果您担心控制器方法,我已经对它进行了多次测试,它工作正常,总是返回正确的数据,因此它确实总是进入脚本的成功场景。是否有一种方法可以将一个类分配给我的displayfor,以便在ajax调用的成功场景中找到并更改它?
$.ajax({
    context: this,
    // rest of your code goes here