asp.net - ASP.NET MVC 2: 使用不重复验证的重复输入部分视图

  显示原文与译文双语对照的内容
93 1

在被重写的应用程序中,最初一个表单包括下面两个主要选项的选项。

现在需要的要求不是下降,接口应该在同一页上显示两个相同的表单。 参数或者隐藏值决定是否在每个表单上设置上述选项,以便每个选项都有一个表单。 这将在模型上设置一个布尔值。

我对表单的外观使用相同的部分视图,在初始化过程中定义它们的差异。 但是,我仍然有一个特定的issue--if在一个窗体上有一个验证错误,它在。 什么是最好的阻止这一点的方法?

我只需要进行一些重复的部分视图,或者是否有一种方法可以使用同样的方法。

时间: 原作者:

88 0

你可以试试这样的东西:

为表单创建基础模型。 基本模型将具有它的两个子模型共有的属性和验证属性:


public class BaseModel {
 [Required]
 public string Name { get; set; }
}
public class Model1 : BaseModel {
 public bool Form1 { get; set; }
}
public class Model2 : BaseModel {
 public bool Form2 { get; set; }
}

然后你可以创建两个不同的控制器操作,以接受这些模型作为参数:


public ActionResult PostForm1(Model1 model) { }
public ActionResult PostForm2(Model2 model) { }

部分视图必须根据它的格式来添加输入:


<form action="<%=(isForm1?"/PostForm1" :"/PostForm2")>%">
 <input type="hidden" 
 id="<%=(isForm1?"Form1" :"Form2")%>" 
 name="<%=(isForm1?"Form1" :"Form2")%>" 
 value="true"/>
</form>

当表单发布时,它应该只对它的模型进行验证,并将其他模型保留为( 你需要一个视图模型,该视图模型具有作为属性的表单模型) 。

我不确定这是否有效,但是又一次你可以尝试。

原作者:
...