我有一个形式,它看起来有点像这样的网页:多种形式
@using (Html.BeginForm("MyAction", "Controller", FormMethod.Post))
{
// html input fields here
// ...
// [SUBMIT]
}
当提交按钮,用户按下,那么下面的函数调用:
public ActionResult MyAction (string id)
{
// default action
}
[HttpPost]
public ActionResult MyAction (MyModel model)
{
// called when a form is submitted
}
现在我的问题是,我不得不添加另一种形式。但我怎么知道哪个表单被提交?因为两者现在都会在第二个(HttpPost)方法中结束...
什么是分离两种表单操作的好方法?请注意,提交表格时,我必须保持在同一页面上。我无法将自己重定向到其他页面/控制器。
我也想过,但是这两个操作都会有相同的代码,比如从数据库中获取数据。你在谈论DRY,这是否意味着在我的控制器中创建一个私有方法是完全可以的,这两个Actions都可以使用? – Vivendi 2012-04-02 09:41:14
是的,为什么不呢?您可以在许多地方调用函数来重构代码。你也可以考虑创建一个扩展方法,但我不知道你在代码中做了什么。 – Iridio 2012-04-02 09:44:09