我正在尝试在ASP.NET MVC中创建一个视图,其中视图模型的不同部分被单独修改以捕获意图。
例如,用户的修改可以一次以下列方式之一完成:
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; }
}
}
我想要做的是根据外部类+内部类之一创建强类型部分视图。 每个局部视图都有自己的表单提交,该操作将指向单独的控制器操作(编辑密码,editname,editstatus ...)
我尝试基于 outerclass +内部类之一来创建视图,这是我在自动视图构建器向导中获得的,但它无法解析DepartmentDetails以及外部类的UserID。
答案 0 :(得分:1)
我建议你有1个模型来生成视图和不同的动作模型(更改传递等)。
在我看来这会更容易。 您可以在一个类中组合所有属性,以显示具有不同表单的视图,但在后期操作中将它们分开。
答案 1 :(得分:0)
我不确定我是否完全理解这个问题...但是,如果你要做的就是根据用户点击的按钮将相同的表单数据提交给不同的操作...我建议你看看这里: How do you handle multiple submit buttons in ASP.NET MVC Framework?
基于我上面链接的线程中的一个答案,我最终创建了一个允许MVC将表单提交重定向到正确操作的属性。
我真的不想发布我的代码,因为它仍然处于概念验证阶段...但是它起作用并且感觉相当干净。