在MVC中使用Post方法重定向到Action

时间:2017-02-28 05:59:52

标签: c# asp.net-mvc

我在表单中有两个提交按钮,一个用于搜索对应一个名称的记录,第二个用于在需要进行修正后在DB中更新该记录。

控制器中的三个动作

  1. 使用HttpGet进行编辑 - 首次显示时,将所有名称从数据库加载到下拉列表
  2. 使用HttpPost进行修改 - 当我们点击搜索时,它会获取该名称的每个细节
  3. EditPerson HttpPost - 当我们点击编辑记录它将所有数据保存回数据库
  4. 在代码中我想这样做

    public ActionResult EditOperation(string Command, DataLayer objmodel)
    {
        if (Command == "Search")
        {
            return RedirectToAction(Edit with Post method) // How to ? always going to Edit With get method
        }
        else if (Command == "Edit Record")
        {
            return RedirectToAction(EditPerson) //Easy to redirect but How to send Model object also ?
        }
        return View("Edit",objmodel);
    }
    RedirectToAction (String ActionName, String ControllerName , Object routeValues)
    

    有没有办法告诉编译器重定向到编辑操作但是有Post方法的人不是Get?
    注意:不要在这里使用Javascript,只有纯c#代码

1 个答案:

答案 0 :(得分:2)

重定向始终使用get,尝试返回“编辑”视图,传入您要使用的模型:

public ActionResult Edit(){

....retrieve Model

return View(MyModel); // default view : Edit

}

[HttpPost]

public ActionResult Edit(MyModel){

....do things with MyModel

return View("OtherView", MyModel);

}