0

我尝试使用jquery.load("/home/CreateEdit") 网格中的按钮,所以每次,我想编辑一行,我使用这个 jquery.load 加载一个 partialView。
问题是,在我编辑了一些日期之后,我想再次调用加载函数,并没有返回服务器,重新加载新修改的日期。为什么?
这是加载的目的吗?只有一次去服务器?我是否必须使用 get/post jquery 调用,或者解决方案是什么?

PS:动作是这样的

[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");
    }
4

1 回答 1

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
}
于 2013-03-15T11:55:08.740 回答