У меня есть RegisterModel, состоящий из 5 моделей SecretQuestionAndAnswerModelУплотненный MVC3 модель ни проверки, ни привязки
public class RegisterModel
{
public SecretQuestionAndAnswerModel SecretQuestion1 { get; set; }
public SecretQuestionAndAnswerModel SecretQuestion2 { get; set; }
public SecretQuestionAndAnswerModel SecretQuestion3 { get; set; }
public SecretQuestionAndAnswerModel SecretQuestion4 { get; set; }
public SecretQuestionAndAnswerModel SecretQuestion5 { get; set; }
}
и
public class SecretQuestionAndAnswerModel
{
public SecretQuestionTypeModel Type { get; set; }
[Required(ErrorMessage = "Please choose a question.")]
public int Id { get; set; }
public string Question { get; set; }
[Required]
[StringLength(20)]
public string Answer { get; set; }
[Display(Name = "Select Question")]
public IEnumerable<SelectListItem> DefaultQuestions { get; set; }
}
На моей основной Register.cshtml, я включать каждый вопрос, как это:
@Html.Partial("_QuestionAndAnswer", Model.SecretQuestion1, new ViewDataDictionary { { "Index", 1 }})
и это частичное выглядит следующим образом:
<div class="input">
@{
@Html.DropDownListFor(m => Model.Id, Model.DefaultQuestions, "(Please choose one)")
@Html.ValidationMessageFor(m => Model.Id)
@Html.TextBoxFor(m => m.Answer)
@Html.ValidationMessageFor(m => m.Answer)
}
</div>
Но проверки, все 5 вопросов, ведут себя как один: другими словами, если выбрать вопрос и введите ответ на 1-й секретный вопрос, то они все проверки проходят, и наоборот ...
Кроме того, на размещение в методе HttpPost регистр
public ActionResult Register(RegisterModel model) { ...
model.SecretQuestion1 всегда нуль. Все они есть. Как вы выполняете такую привязку привязки к модели? Я думал, что все будет хорошо.
Да, я мог видеть, что в HTML , но я хочу знать, почему это так. Теперь попробуйте шаблон редактора, спасибо –
@RalphLavelle - причина в том, что частичные представления не знают, как иметь дело с двумя разными свойствами с тем же именем. –
Hah! Вот и все, спасибо @MystereMan. Я люблю тебя прямо сейчас –