1

我是 mvc 的新手。我刚刚遇到了一个问题。我创建了一个 prtial 视图,其中有一个 texbox,它绑定到模型中的属性。在该属性上应用了 [必需] 验证。问题是,当我在一个视图上多次渲染该部分视图并仅在一个文本框中填充数据后单击提交按钮时,验证同时适用于所有部分视图。我想要的是 [Required] 验证应该分别应用于所有部分视图/文本框。

我的部分观点是

@Html.TextboxFor(m=>m.Name)

型号是

[Required]
public string Name(get; set;}

我的视图有多个部分视图

 @Html.Partial(_MyPartialView)
 @Html.Partial(_MyPartialView)
<input Type="submit" value="click"/>

当我在第一个部分填充数据时,验证也会同时自动应用于第二个部分视图。

希望你们能理解前言。如果有人可以提供帮助,我将非常感激,因为我为此问题困了几天。提前谢谢了。

4

1 回答 1

0

很难理解你想要做什么,因为如果你有一个包含一个名为 NAME 的属性的模式,那么我如何理解你有一个表单,并且在这个表单内你会渲染相同的局部视图,只有你拥有的属性,所以你预计会使用 POST 方法吗?我觉得你应该改变你的模态有一个这样的字符串列表:

public class Model
{
  public IList<Name> Names{get;set;}
  public Model()
  {
        Names=new List<Name>();
  }
}
public class Name
{
    [Required]
    public string FirstName{get;set;
}

现在在视图中你可以做这样的事情:查看:

@{
   Layout=null;
}
  @model Model
   @using (Ajax.BeginForm("Action", "Controller", null,
                        new AjaxOptions { HttpMethod = "POST"} ))
 {
    @Html.TextBoxFor(c=>c.Names[0].FirstName)
    @Html.TextBoxFor(c=>c.Names[1].FirstName)
    //and so on 

   <input type="submit" value="submitForm"/>
}

不要忘记包含所有必要的 mvc 客户端验证脚本。希望这会帮助你 。

于 2014-02-22T09:01:25.510 回答