我尝试使用 jquery.load("/home/CreateEdit")
从网格中的按钮,所以每次,我想编辑一行,我使用此jquery.load加载partialView。
问题是,在我编辑了一些日期后,我想再次调用加载函数,不会返回服务器,重新加载新修改的日期。
为什么呢?
这是加载的目的吗?只有一次进入服务器?我是否必须使用get / post jquery调用,或者解决方案是什么?
P.S:行动看起来像这样
[HttpGet]
public ActionResult CreateEdit(int id=0)
{
if (id != 0)
{
var model = _tallyMeasurementRepository.GetById(id);
return PartialView("_CreateEdit", AutoMapper.Mapper.Map<TallyMeasurement, TallyMeasurementViewModel>(model));
}
else
{
return PartialView("_CreateEdit", new TallyMeasurementViewModel());
}
}
[HttpPost]
public ActionResult CreateEdit(TallyMeasurementViewModel viewModel)
{
if (viewModel != null)
{
_tallyMeasurementRepository.Update(AutoMapper.Mapper.Map<TallyMeasurementViewModel,TallyMeasurement >(viewModel));
}
return RedirectToAction("Measurementt");
}
答案 0 :(得分:0)
在服务器返回重定向结果后,客户端应该进行任何后续调用。在客户端要求之前,服务器不会发送其他数据。
所以,在你的jquery结果处理程序代码中,检查响应是否是重定向;如果是随后的电话。
或者,如果您知道要返回的记录的ID,则可以随时返回不同的结果。
[HttpPost]
public ActionResult CreateEdit(TallyMeasurementViewModel viewModel)
{
if (viewModel != null)
{
_tallyMeasurementRepository.Update(AutoMapper.Mapper.Map<TallyMeasurementViewModel,TallyMeasurement >(viewModel));
}
return CreateEdit(id); // WHERE id is the value to load
}