代码之家  ›  专栏  ›  技术社区  ›  Tony

ASP。NETMVC是一个HTML。BeginForm()有许多输入

  •  0
  • Tony  · 技术社区  · 15 年前

    我有一个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
    

    问题是,我想允许用户在不向控制器发送所有表单数据的情况下更改密码,只发送来自密码字段的数据。

    该视图继承自具有属性(登录名、密码、电子邮件等)的my buisness对象

    任何关于如何做到这一点的想法都会非常有用。谢谢

    1 回复  |  直到 15 年前
        1
  •  3
  •   Henrik    15 年前

    如果要避免发布所有数据,请为要提交的每种表单类型单独执行控制器操作

    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") 
    
    推荐文章