是否可以发出ajax post请求,并在控制器中返回一个模型,之后使用该模型呈现页面?为了说明我的意思,请说我们有一个简单的ajax帖子:
[HttpPost]
public ActionResult PostReq(MyModel model)
{
//do some changes to model
//render view with new model
return View(model);
}
在家庭控制器中我有:
df <- as.data.frame(c("M","F"))
colnames(df) <- "M1"
rename_cols <- function(df) {
colnames(df)[names(df) == "M1"] <<- "sex"
}
> rename_cols(df) # this will operate directly on the 'df' object
> df
sex
1 M
2 F
我如何实现这一目标?目前,这没有任何作用,页面不刷新或重新渲染自己。是否可以从ajax请求中执行此操作?
我使用ajax但不使用模型来绑定表单数据的原因是因为它是动态的,据我所知,我无法动态地将表单数据绑定到模型。
答案 0 :(得分:3)
向success
添加$.ajax
回调,这将为您提供帖子的结果(在本例中为html),例如:
$.ajax({
url: "/Home/PostReq",
data: JSON.stringify(data),
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
dataType: "html",
cache: false,
async: true,
error: function (jqXHR, error, errorThrown) {
//display error
},
success: function (data, textStatus, jqXHR) {
$("body").html(data);
}
})
使用部分视图而不是替换整个身体会更容易。
答案 1 :(得分:2)
是的,可以做到。要记住的事情很少
1)首先,帖子后返回的视图应该是部分视图不是完整视图
2)您必须在主视图上放置一个容器div,其中将追加来自ajax调用的响应部分视图,即成功回调。
我的意思是,在您的主视图中,您将拥有:
$.ajax({
url: "/Home/PostReq",
data: JSON.stringify(data),
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
async: true,
error: function (jqXHR, error, errorThrown) {
//display error
}
success: function(response) {
$('#container').html(response);
}
})
并在ajax调用成功函数中添加容器div中的响应,如:
{{1}}