Как применить проверку к нескольким представлениям 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. Надеюсь, что это поможет вам.