-4

データが送信される前に、ユーザーが入力した内容を確認して確認する機会をユーザーに与える必要があります。ユーザーが送信フォームをクリックすると、フォームに入力されたすべてのデータを別のページに表示したいと考えています。ユーザーがそのページで検証をクリックすると、データはコントローラーに戻り、最終的にデータが送信されます。

主な問題は、すべてのフォーム データをあるページから別のページに移動する方法だと思います。

4

3 に答える 3

2

これを行う 1 つの方法は、「VerifySubmission」などの新しいコントローラー アクションを作成することです。フォームを送信すると、YourController.VerifiySubmission() に送信されます。VerifySubmission のビューは、ユーザーがデータを確認できるようにデータを表示し、非表示のフォーム フィールドとしてフィールドを書き出します。この「検証」ページには送信ボタンがあり、ユーザーがクリックすると、非表示のフォーム フィールドが最終的な「FormSubmit」コントローラー アクション (名前は何でも) に POST され、データベースに保存されます。

編集:また、質問のタイトルを更新して、質問の内容を示すようにしてください。

于 2012-04-17T15:50:34.850 に答える
0

enter data-confirm-final送信ページ間でデータを転送するもう1つのアプローチは、2つのリクエスト間で状態(通常はSessionState)を保存できるTempDataを使用することです。

于 2012-04-17T16:10:18.850 に答える
0

必要なのは、フォームをコントローラーに投稿することです。たとえば、Index送信用のページを使用している場合、コントローラー コードは次のようになります。

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

[HttpPost]
public ActionResult Verify(FormCollection form)
{
    ViewBag.FormItems = form;
    return View();
}

[HttpPost]
public ActionResult Accept(FormCollection form)
{
    // Do whatever you need to do to store the data
    return View();
}

ここで、ユーザーがモデルにある情報を送信している場合、 の代わりにそのモデルを実際に使用し、 をそのモデルに対して強く型付けされるようにFormCollection設定する必要があります (次のように処理する方がはるかに簡単です)。View強く型付けされたモデル)。

確かに、ViewBagを単に格納するように を設定するのFormCollectionは怠惰な方法ですが、本当にやりたいことがわからない場合はうまくいきます。前述したように、入力データにモデルを使用すると、物事が単純化され、より堅牢になります。

于 2012-04-17T15:59:55.767 に答える