0

これが間違っているかどうかはわかりませんが、ここに私の問題があります。Viewのデータを別のに渡す必要がありController/Actionます。

私のHTMLフォームには、

@using (Html.BeginForm("Preprocess", "Item", FormMethod.Post))
{
   ...some html...
   ...loop for each item in Items collection
   <button type="submit" name="itemInfo" value="@Model.someValue">Submit</submit>
}

Item/Preprocessアクション (厳密に型指定されたビュー)でフォームのデータを受け取ります。ただし、特定のフラグに応じてデータを処理する「中央処理装置」にこれを渡す必要があります。このコントローラーで受け取った値を別のコントローラーに渡すにはどうすればよいですか? 私は MVC の初心者であり、これが正しい方法であるかどうかさえわかりません。

基本的に、上記のフォームと似た 3 つの HTML フォームがありますが、 と が異なりControllersますViews。単一の中央マスターを呼び出す必要があります。Controller/Actionもちろん、データをフォームからマスターに渡しControllerますHTTPPOST。もちろん、それぞれControllerが独自のデータをマスターControllerが受け入れることができるクラスにフォーマットする必要があります。またはの代わりに何を入れればよいですReturn View()RedirectToAction(...)?

これを行う方法を提案できますか?

または、別の方法を提案できるかもしれません。それは私が望むものに従わないかもしれませんが、基本的に私の要件は、中央のコントローラー/アクション (またはその他の集中型コード) がデータを受け取り、値に応じて操作を実行できることです。

4

2 に答える 2

0

あなたがここでやろうとしていることを正確にフォローしているかどうかはわかりません。しかし、あなたの説明からすると、あなたのデザインが間違っているように聞こえます。

コントローラーがデータを受信して​​処理した後に、一般的な一連のアクションを実行しようとしている場合は、「セントラル コントローラー」を、3 つのコントローラーすべてがアクセスできるある種のサービス クラスに昇格させる必要があります。サービス クラスは、必要に応じて ActionResult を返すことができます。

return new ViewResult { ViewName = "MyForm" };

ただし、データを傍受していくつかの一般的なアクションを実行したい場合は、カスタムActionFilterを記述して、中央コントローラーが行っていることをすべて実行し、他のコントローラーをクリーンなままにすることができます。

于 2012-07-27T15:12:15.500 に答える
0

あなたはこれを行うことができます:

 return RedirectToAction("SomeAction", "SomeController",new { id=someString} );
于 2012-07-27T11:49:21.083 に答える