0
コントローラに2つのインデックスメソッドがあります。最初にページをロードして1つは投稿を受け入れ、送信されたデータに基づいて同じビューをリロードします。POSTで同じコントローラで別のメソッドにリルートする
[HttpGet]
public ActionResult Index()
{
loads page with viewmodel containing a searchobject that is submitted with a form on the page
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult Index(SearchModel Model)
{
takes form submit and reloads page based on search results
return View(Model);
}
私は同じコントローラにビュー/メソッドを追加しています。私がしたいのは、add関数が成功したときです。私は、インデックスのPOST版を呼び出して、追加したばかりの項目のIDを渡したいと思います。ここ
は、私がこれまで持っているものです。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Add(AddModel addmodel)
{
do stuff
var status = client.Add(dto);
if (!status)
{
return View(AddModel);
}
SearchModel = new SearchModel();
SearchModel.ID= addmodel.ID;
return Index(search, null);
}
これは、POSTインデックスメソッドに入るが、それはその方法を去った後、それが戻って追加になり、検索のviewmodelに追加ページをロードしようとすると、明らかに投げます例外。
私のオプションはこれのような何かをすることですか?
をユーザーがポストや 'Index'後にアドレスバーに' Add'のURLを見たいですか?あなたのケースでは、私は、ユーザーが 'Add' URLを見ているが、インデックスの内容を見ていると思う。代わりに 'RedirectToAction'を試してください。しかし、POSTを使うことはできません。 –