您好我是MVC的新手,我有以下的Senario
查看:
step3.cshtml是我的观点
这个数据绑定到step3.js(使用knockout)
$.post("/Step/Step4", { "some":some_data }, function (data) {
}, 'JSON');
控制器:
[HttpPost]
public ActionResult Step4(model foo)
{
//save this data to the database and return a view
using (DBContext dbContext = new DBContext())
{
dbContext.Table.Add(foo);
dbContext.SaveChanges();
}
return View(foo);
}
public ActionResult Step4()
{
//get this view with the model
}
我能够看到视图Step4.cshtml能够从模型获取属性值但是。 我看到我的View Step4.cshtml是帖子的响应标题,如何在浏览器中呈现它。
这是正确的做法吗?
HTML表单帖子是否可以返回视图并替换整个内容,除了部分视图更新外,AJAX不能这样做?
答案 0 :(得分:0)
当你调用$ .post时,你正在使用POST方法发出jQuery ajax请求。该数据将在成功方法中返回给您。如果要返回视图,则必须手动将文档中的html替换为该响应。
通常,当您使用这样的ajax时,您将返回一个PartialView来更新页面的一部分,而不是整个页面。您可能想看看是否可以返回部分并更新div。
您也可以使用Ajax.ActionLink执行此操作,并在AjaxOptions中指定返回响应时要更新的元素的ID,以及InsertionMode,应将其设置为Replace。而且您不必担心自己更换内容。
请参阅此stackoverflow问题,这可能会对您有所帮助:How To Use Ajax.ActionLink