C# 当索引通过ajax返回时,mvc是如何工作的?

C# 当索引通过ajax返回时,mvc是如何工作的?,c#,asp.net,asp.net-mvc,vb.net,asp.net-ajax,C#,Asp.net,Asp.net Mvc,Vb.net,Asp.net Ajax,它是重新加载整个页面,还是只发送必要的js来更新页面中需要更改的部分 如果是后者,那将是上帝派来的,不过我可能是在做梦。它可能会毫无顾忌地返回整个视图,对吗 编辑:答案似乎是否定的,所有内容都已返回 编辑添加: 你认为编写一个框架,让mvc将它输出的最后一个html与我们想要输出的当前html进行比较会很困难吗?与其发送整个html,不如找出发生了什么变化,并生成js代码,与以前的html相比进行更新?(假定没有使用js在客户端上手动更改任何内容)。。。也许是一个codeplex项目的想法?或者

它是重新加载整个页面,还是只发送必要的js来更新页面中需要更改的部分

如果是后者,那将是上帝派来的,不过我可能是在做梦。它可能会毫无顾忌地返回整个视图,对吗

编辑:答案似乎是否定的,所有内容都已返回

编辑添加:
你认为编写一个框架,让mvc将它输出的最后一个html与我们想要输出的当前html进行比较会很困难吗?与其发送整个html,不如找出发生了什么变化,并生成js代码,与以前的html相比进行更新?(假定没有使用js在客户端上手动更改任何内容)。。。也许是一个codeplex项目的想法?或者可能存在类似的情况

这完全取决于你怎么做

当使用ajax以JSON格式返回数据时,您可以返回任何想要的内容。例如:

public ActionResult GetCustomers()
{
    if(Request.IsAjaxRequest)
       return Json(db.GetCustomers());

   return View(db.GetCustomers());
}
如果请求是使用Ajax发出的,那么这将返回所有客户的Json编码

你仍然可以返回你想要的任何东西,如果你想返回一个视图,它只是为了

return View(model);
如果不想返回布局(母版页),只需从视图返回MasterPageFile指令即可


不,它不会重新加载整个页面,这就是为什么它被称为Ajax。

坦白说,客户端发生的事情与MVC无关。:-)它不知道调用是由浏览器引擎还是ECMA脚本发出的


由于您询问Ajax调用,处理结果的责任就落在您的脚本(或您正在使用的任何JS框架)上

嗨,-我知道我可以自定义实现这些,但我特别想知道当通过ajax返回索引时会发生什么,它会返回整个索引html还是自动生成的智能js来自己进行更新。我知道我可以写js来更新客户端,但希望现在可以。我可能不明白你在问什么。Asp.net MVC根本没有返回任何JS。您认为编写一个框架会有困难吗?在这个框架中,MVC会将它输出的最后一个html与我们想要输出的当前html进行比较,而不是发送整个html,找出发生了什么变化,并生成JS代码,与以前的html相比进行更新?(假定没有使用js在客户端上手动更改任何内容)。。。也许是一个codeplex项目的想法?或者可能存在类似的情况?你做得太复杂了。这将是复杂而脆弱的。此外,您将遇到如何用当前请求识别以前的响应的问题;你需要保留多少个响应,在哪里存储它们,何时删除它们。所有你需要的响应识别是一个id,我不会写thsi只是为了我的解决方案,但只是一个一般的想法,幻想的想法。。。如果存在这样的东西,你会使用它吗?哈哈,不,我不会使用它,因为上面和其他原因。:-)你只需要将“最后生成的html”存储为我们的缓存,然后在另一次旅行中,你发送进行更新的js,并将js与上一次的html输出一起存储,然后继续这样做,当然,如果生成的js大于将生成的html,你只发送更新的html而不是js,和往常一样,将其作为缓存的最后一个输出,并继续这样做。这些都是我认为不言而喻的显而易见/常见的方法。有什么想法吗?