ASP.NET MVC具有许多输入的HTML.BeginForm()

时间:2010-10-22 13:30:36

标签: asp.net 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 个答案:

答案 0 :(得分:3)

如果您想避免POST所有数据,请为您要制作的每种表单提交单独执行一个控制器操作

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")