jquery第二次加载局部视图?

时间:2013-03-15 11:42:26

标签: jquery asp.net-mvc asp.net-mvc-3

我尝试使用 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");
    }

1 个答案:

答案 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
}