0

我不知道我是否做错了,但这是我的问题。我需要将 aView的数据传递给另一个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 的初学者,我什至不确定这是否是正确的方法。

基本上,我有三个与上述表单相似的 HTML 表单,但不同Controllers的是Views. 我需要他们调用一个中央Controller/Action主控,当然也需要Controller通过HTTPPOST. 当然,每个Controller人都必须将自己的数据格式化为 masterController可以接受的类。我应该用什么代替Return View()or RedirectToAction(...)

你们能建议一种方法吗?

或者,也许你们可以建议另一种方式。它可能不符合我的要求,但基本上我的要求是中央控制器/动作(或其他一些集中代码)可以接收数据并根据值执行操作

4

2 回答 2

0

你可以这样做:

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

不确定我是否完全按照您在此处尝试执行的操作。但从你的描述来看,你的设计听起来确实是错误的。

如果您在控制器接收和处理数据后尝试执行一些常见的操作,那么您应该将您的“中央控制器”提升为可以由所有三个控制器访问的某种服务类。如有必要,服务类可以返回 ActionResult:

return new ViewResult { ViewName = "MyForm" };

但是,如果您想拦截数据并执行一些常见操作,您可以编写一个自定义ActionFilter来执行您的中央控制器正在做的任何事情,并让其他控制器保持清洁。

于 2012-07-27T15:12:15.500 回答