2017-03-26 12 views
0

私はユーザーがデータを入力できるシンプルなフォームページを持っています。私が投稿を押した後、そのまま残すためにはすべてのデータが必要なので、ユーザーがデータを変更したい場合は、可能です。私がデータを保存した後にClientオブジェクトをSessionに保存し、Saveボタンを押すたびに、Sessionに既にユーザーがいるかどうかを確認します。C#MVC ActionLinkページをリロードする前にクリアする

今、私は@Html.ActionLink("New client", "NewUser");を持っています。これは、新しいユーザーを作成するときに押します。したがって、このリンクはページをリロードして、Sessionをクリアします。

"New user"は代わりにIndexにリダイレクトする必要がありますが、そのように動作するように管理しましたが、有効な方法ではありません。

コントローラーコード:セッションをクリアするために行動をしなければならないので、sessionをクリア

public ActionResult Index() 
{ 
    return View(_vm); 
} 

public ActionResult NewUser() 
{ 
    Session["newClient"] = null; 
    return RedirectToAction("Index"); 
} 

答えて

1

は唯一のバックエンドで行うことができますが、代わりにあなた以来ビュー

public ActionResult NewUser() 
{ 
    Session["newClient"] = null; 
    return View("Index",_vm); 
} 

を返すreturn RedirectToAction("Index");を必要といけませんredirectingindex新しいユーザーを作成するためのビュー

+0

これは私を '/ Home/NewUser'にナビゲートし、私がそこにフォームを保存しようとすると、私の 'Index [HttpPost]'メソッドはもはや 'NewUser()'メソッドを起動しません。 – Taurib

+1

デフォルトでは、フォームは 'Html.BeginForm(" Index "、" Home ")' – Usman

+0

でアクションを指定できるようにビューを返す同じアクションにフォームを送信するので、ああ、ありがとうございました! :) – Taurib

関連する問題