アプローチ1は、RedirectToAction()メソッドのrouteValuesパラメータの一部として、必要なパラメータを渡すことができます。使用されたクエリ文字列データを使用します。
それとも、のようなクエリ文字列の助けを借りて、それをフレームすることができます
return RedirectToAction("Main", new RouteValueDictionary(
new { controller = controllerName, action = "YourActionName", Id = Id}));
か、TempDataを利用することができます。ブラウザのURLバーで
[HttpPost]
public ActionResult MyActionMethod(MyModel model)
{
TempData["myModal"]= new MyModel();
return RedirectToAction("ActionMethod2");
}
[HttpGet]
public ActionResult ActionMethod2()
{
MyModel myModal=(MyModel)TempData["myModal"];
return View();
}
。
このソリューションは一時的なクッキー使用しています:
[HttpPost]
public ActionResult Settings(SettingsViewModel view)
{
if (ModelState.IsValid)
{
//save
Response.SetCookie(new HttpCookie("SettingsSaveSuccess", ""));
return RedirectToAction("Settings");
}
else
{
return View(view);
}
}
[HttpGet]
public ActionResult Settings()
{
var view = new SettingsViewModel();
//fetch from db and do your mapping
bool saveSuccess = false;
if (Request.Cookies["SettingsSaveSuccess"] != null)
{
Response.SetCookie(new HttpCookie("SettingsSaveSuccess", "") { Expires = DateTime.Now.AddDays(-1) });
saveSuccess = true;
}
view.SaveSuccess = saveSuccess;
return View(view);
}
かアプローチ4を試してみた: だけでモデルのアクションまたは新しいキーワードにリダイレクトするために必要アクションを呼び出しません。
[HttpPost]
public ActionResult MyActionMethod(MyModel myModel1)
{
return ActionMethod2(myModel1); //this will also work
}
public ActionResult ActionMethod2(MyModel myModel)
{
return View(myModel);
}
いずれのビューでもActionMethod2()の結果を使用したくないので、変数値として使用したいだけです。 – Elnaz
model-view-controllerタグはパターンに関する質問のためのものです。 ASP.NET-MVCの実装には特定のタグがあります。 –