所有
load所做的就是返回HTML从服务器,那么为什么不只是追加到一个临时DIV,然后从中获得HTML上的成功?
var $dummy = $("<div>");$dummy.load("MyController/Details", function(response, status, xhr) { var $container = appendContainer(); if (status != "success") { $container.html('an error has occured'); } else { $container.html($dummy.html()); } $dummy.remove();});更新:
如果您期望出现异常,则应该处理它。如果您基本上只是允许错误发生
status !="success",那是一种严重的代码味道。您应该捕获该错误并返回另一个PartialView。
public ActionResult Details(int id){ try { DetailsViewModel model = ModelBuilder.GetDetailsViewModel(id, _repository); return PartialView("Details", model); } catch (SomeException ex) { return PartialView("Error", ex.Message); }}这样就可以确保始终获得有效的HTML响应,否则,您的基本错误
an error occured将发挥作用。



