Как применить проверку к нескольким представлениям partail, которые привязаны к одному и тому же свойству модели в mvc?

Я новичок в MVC. Я только что столкнулся с проблемой. Я создал представление prtial, в котором есть текстовое поле, привязанное к свойству в модели. на это свойство [Обязательно] применяется проверка. проблема заключается в том, что когда я рендерил это частичное представление несколько раз в виде и щелкаю кнопку отправки после заполнения данных только в одном текстовом поле, проверка применяется ко всем частичным представлениям одновременно. Что я хочу, так это то, что проверка [Обязательный] должна применяться ко всем частичным представлениям / текстовым полям отдельно.

Мой частичный вид

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

Модель

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

Мой взгляд имеет несколько частичных просмотров

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

когда я заполняю данные в первом частичном случае, проверка автоматически применяется и ко второму частичному представлению одновременно.

Надеюсь, вы, ребята, поймете preoblme. Я буду очень благодарен, если кто-нибудь может помочь, так как я застрял на несколько дней для этой проблемы. Спасибо заранее.

1 ответ

Решение

Трудно понять, что вы хотите сделать, потому что, если у вас есть модал, который содержит одно свойство с именем 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;
}

и теперь в поле зрения вы можете сделать что-то вроде этого: View:

@{
   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. Надеюсь, что это поможет вам.

Другие вопросы по тегам