Хорошо, ребята, нужна помощь!
Я работаю с asp.net mvc3 бритвой (и я довольно новичок в этом, но сделал много веб-форм)
Хорошо, так что по поводу проблемы
Мой вопрос вращается вокруг представления представления.У меня очень сложная модель, основанная на моем представлении (строго типизированная).
Я хочу вернуть модель в аргументы в методе HttpPost контроллера.сделать в основном:
public ActionResult Personal()
{
DataModel dataModel = new DataModel();
FormModel model = new FormModel();
model.candidateModel = dataModel.candidateModel;
model.lookupModel = new LookupModel();
return View(model);
}
[HttpPost]
public ActionResult Personal(FormModel formModel)
{
if (ModelState.IsValid)
{
//stuff
}
return View(formModel);
}
Теперь ...
У меня проблемы с получением значений в параметре formModel в методе post.
Это работает (это означает, что я могу видеть значение), но это утомительно, так как мне нужно точно написать, где оно находится в строке, каждое поле:
@Html.TextBox("formModel.candidateModel.tblApplicant.FirstName", Model.candidateModel.tblApplicant.FirstName)
Это выглядит так:
<input name="formModel.candidateModel.tblApplicant.FirstName" id="formModel_candidateModel_tblApplicant_FirstName" type="text" value="Graeme"/>
Это не работает:
@Html.TextBoxFor(c => c.candidateModel.tblApplicant.FirstName)
Это выглядит так:
<input name="candidateModel.tblApplicant.FirstName" id="candidateModel_tblApplicant_FirstName" type="text" value="Graeme"/>
Теперь я предполагаю, что проблема заключается в несоответствии идентификатора
Поэтому, пожалуйста, ответьте мне на это:
- Правильно ли я делаю это
- Почему textboxfor не получает правильное значение / id и как мне сделатьон получает правильное значение / идентификатор, чтобы я мог получить его в POST (если это даже проблема)?
- Кроме того, кажется, что textboxfor является ограничительным, таким образом, что если у вас есть время даты,как вы используете метод .toshortdate ()?Это заставляет меня думать, что текстовое поле для меня бесполезно.
Быстрое разъяснение: когда я говорю, что текстовое поле не работает, оно получает значения, когда я ПОЛУЧАЮ форму.Таким образом, они заполняются, но в POST / представлении я не могу видеть их в formModel в параметрах.
Примечание еще одной стороны:
Ни один из помощников html не работает, это проблема.Они также не отображаются в состоянии модели.
Спасибо всем за помощь
Ответ:
html.TextBoxFor и html.Textbox, POSTing значения, модель в параметрах
Это была проблема, на мой взгляд, где-то, я заменил весь код с фрагментом в этом ответе, и это сработало.
Еще раз спасибо