我有一個形式,它看起來有點像這樣的網頁:多種形式
@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