2010-10-22 92 views
0

我有一個HTML.BeginForm()來更改用戶的數據(電子郵件,密碼等),但我想分開在同一頁的內容,我的意思是那裏將是:ASP.NET MVC一個HTML.BeginForm()有很多輸入

MainContent with submit button and also 
    - a HTML.BeginForm() with fields to change password + submit button 
    - a HTML.BeginForm() with fields to change email + submit button 

的事情是,我想允許用戶無需所有形式的數據發送到控制器,從密碼字段唯一的數據更改其密碼。

這一觀點從我的樓內設有商務對象繼承與性能(登錄,密碼,電子郵件等)

任何想法如何做到這將是多麼有用。謝謝 !

+1

這已經可以像你描述的那樣工作了(多重'Html.BeginForm()')。但「提交按鈕的主要內容」 - 這是什麼提交按鈕? – bzlm 2010-10-22 13:37:51

+0

您只需使用允許指定操作的重載。 – 2010-10-22 13:39:27

+0

bzlm >>用於發送所有表單數據(也來自其他表單) – Tony 2010-10-22 14:07:52

回答

3

如果你想避免張貼的所有數據,做一個獨立的控制器操作每個你想

class Mycontroller 
{ 
    [HttpPost] 
    public ActionResult ChangeEmail(int id,string email) 
    { 
    // modify email for user with id id 

    } 

    [HttpPost] 
    public ActionResult ChangePassword(int id,string password) 
    { 
    // modify password for user with id id 

    } 
} 

您可以指定一個表單提交與像一個參數,它的動作類型的表單提交的這個:

Html.BeginForm("ChangeEmail") 
+0

nope,它仍然發送所有的表單數據,並沒有進入ChangePassword操作(不「看到」它) – Tony 2010-10-22 14:06:43

+0

看看生成的html,是否有一個表單標籤與action =「ChangePassword」? – Henrik 2010-10-22 17:42:52