Javascript 成功调用ajax后更改@Html.DisplayFor项
所以这个标题很好地说明了我在努力做什么,我很确定我找到了正确的道路,或者至少我这么认为。但在重新加载整个视图之前,该值不会更新 html: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
@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