2010-10-22 64 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