在调用者上区分控制器RedirectToAction

时间:2014-01-23 09:16:00

标签: c# asp.net-mvc

我有2个视图,我可以从控制器调用函数:

  • 索引
  • MyDevices

RedirectToAction是否会重定向到Index或MyDevices取决于调用者而不用新名称处理代码而只改变RedirectToAction(“parameter”)?

下面你可以看到我的控制器方法

[HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit([Bind(Include="DeviceId,DeviceSerialNumber,DeviceUser,DeviceDictionaryId,Batch,Start,End")] Device device)
        {
            if (ModelState.IsValid)
            {
                db.Entry(device).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(device);
        }

1 个答案:

答案 0 :(得分:3)

在您的视图中,在表单中添加一个名为viewName的隐藏字段,其中包含当前视图的名称。在您的控制器中进行这些更改(添加viewName参数并根据其值重定向):

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include="DeviceId,DeviceSerialNumber,DeviceUser,DeviceDictionaryId,Batch,Start,End")] Device device, string viewName)
{
     if (ModelState.IsValid)
     {
          db.Entry(device).State = EntityState.Modified;
          db.SaveChanges();
          return RedirectToAction(viewName);
     }
     return View(device);
}