【问题标题】:Asp.Net MVC View with Multiple strongly typed Partial View with Submits per partial viewAsp.Net MVC 视图与多个强类型部分视图,每个部分视图提交
【发布时间】:2010-11-12 05:32:31
【问题描述】:

我正在尝试在 ASP.NET MVC 中创建一个视图,其中分别修改视图模型的不同部分以捕获意图。

例如,对用户的修改可以一次通过以下方式之一进行:

  1. 修改名称,
  2. 修改邮箱,
  3. 修改密码,
  4. 修改状态
public class UserEditViewModel
{
    public string DepartmentDetails { get; set; }
    [HiddenInput(DisplayValue = false)]
    public Guid UserId { get; set; }

    public class UserNameEditModel
    {
        [Required(ErrorMessage = "Name Required")]
        [DisplayName("Name")]
        [StringLength(50, ErrorMessage = "Name must be less than or equal to 50 characters")]
        public string Name { get; set; }
    }

    public class UserPasswordEditViewModel
    {
        [Required(ErrorMessage = "Password cannot be Empty")]
        [DisplayName("Password")]
        public string Password { get; set; }

        [Required(ErrorMessage = "Confirm Password is Required")]
        [DisplayName("Confirm Password")]
        public string ConfirmPassword { get; set; }
    }

    public class UserStatusEditViewModel
    {
        [Required(ErrorMessage = "Status  Required")]
        [DisplayName("Status")]

        public bool  Status { get; set; }

        [Required(ErrorMessage = "Comment  Required")]
        [DisplayName("Comment")]
        public string Comment { get; set; }
    }
}

我想做的是基于外部类+内部类之一创建强类型的部分视图。 每个部分视图都有自己的表单提交,其中的动作指向单独的控制器动作(编辑密码、编辑名称、编辑状态...)

我尝试 t0 基于 outerclass+ 内部类之一 创建视图,这是我在自动视图构建器向导中得到的,但它无法解析 DepartmentDetails 以及外部类的 UserID。 p>

  1. 我想要在 ASP.NET MVC 2 / 3 Beta 中做的事情可能吗?
  2. 稍后我将使用 Ajax 进行增强,但我想在没有它的情况下做尽可能多的表单发布。
  3. 如果可以让部分视图上的单独表单独立工作,那么我想一种解决方案可能是在每个 EditviewModel 上设置 User Id 和 Details,并让视图使用一个 ViewModel。

【问题讨论】:

    标签: asp.net-mvc viewmodel partial-views


    【解决方案1】:

    我建议您使用 1 个模型来生成视图和用于操作的不同模型(更改通道等)。

    在我看来,这会更容易。 您可以将所有属性组合在一个类中以显示具有不同表单的视图,但在您的发布操作中将它们分开。

    【讨论】:

    • 我可以这样做,但你能告诉我我是否可以在同一个视图或使用部分视图上有多个提交操作按钮。
    【解决方案2】:

    我不确定我是否完全理解了这个问题...但是,如果您要做的只是根据用户单击的按钮将相同的表单数据提交给不同的操作...我建议您看这里: How do you handle multiple submit buttons in ASP.NET MVC Framework?

    根据我上面链接的线程中的一个答案,我最终创建了一个属性,允许 MVC 将表单提交重定向到正确的操作。

    我真的不想发布我的代码,因为它仍处于概念验证阶段......但它可以工作并且感觉相当干净。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      相关资源
      最近更新 更多