Project と Tag の 2 つのコントローラーがあり、どちらにも create ビューと get ポスト メソッドがあります。
プロジェクト作成ビューから、タグ作成ビューでダイアログを開くタグを追加するオプションがあります。
タグを追加すると、タグコントローラーの作成ポストメソッドに移動し、そこに送信したコントローラーアクションを取得できるようにしたい(この場合はプロジェクト)。UrlReferer クラスを見てきましたが、コントローラーを取得するより良い方法はありますか?
これが必要な理由は、次のようなことができるようになりたいからです
if (Request.IsAjaxRequest())
{
if (REFERER CONTROLLER != Tag Controller)
{
return Json(new { Item = item, Success = true });
}
else
{
return RedirectToAction("Index");
}
}
基本的に、ダイアログが別のコントローラーにある場合は、新しい値のjsonを返します。それ以外の場合は、インデックスアクションを返します
編集は、このアイデアを再び使用することになりました。行きました
if (Url.IsLocalUrl(Request.UrlReferrer.AbsoluteUri) && !String.Equals(Request.UrlReferrer.LocalPath.TrimEnd('/'), Url.Action("Index"), StringComparison.OrdinalIgnoreCase))
{
return Json(new { Item = item, Success = true, Field = String.Format("#Selected{0}s", ControllerName) });
}
return Json(new { Success = true, Field = "#mainContent", Url = Url.Action("Index") });