|
分類:[ASP.NET (C#)]
.NET Core 2.1 C# MVCを使ってます。
コントローラーから別のアクションメソッドを呼び出すことが一つだけの時は成功するのですが、複数(ループで)呼び出すことができません。
public class GomiController : Controller
{
// ちゃんと実行される
public IActionResult Restore(string id)
{
Gomi gomi = _dbContext.Gomis.Find(id);
return RedirectToAction("Restore", gomi.Controller, new { area = gomi.Area, id = gomi.OriginalId }); //gomi.Controllerの中身は"Hoge"
}
// ちっとも実行されない
public IActionResult Restore(string[] ids)
{
List<string> messages = new List<string>();
for(int i = 0; i < ids.Length; i++)
{
Gomi gomi = _dbContext.Gomis.Find(ids[i]);
messages.Add(RedirectToAction("Restore", gomi.Controller, new { area = gomi.Area, id = gomi.OriginalId }).ToString());
}
return Json(messages);
}
}
public class HogeController : Controller
{
private DBContext_ _dbContext;
public IActionResult Restore(string id)
{
try
{
Hoge hoge = _dbContext.Hoges.Find(id);
hoge.DelFlag = false;
_dbContext.SaveChanges();
return Json(new { success = true, message = $"HogeId:{id}({hoge.Name}) Restored." });
}
catch (Exception ex)
{
return Json(new { success = false, message = $"HogeId:{id} can not Restore.{ex.GetType()} {ex.Message}" });
}
}
}
ループの中でGomiColtrollerからHogeControllerのアクションメソッドを呼び出すにはどうしたらいいでしょうか?
HttpClientを使うとログインページのHtml文字列が返ってきます。
|