У меня такая проблема. У меня есть список моделей для форм. Допустим, это имя, фамилия и язык. У меня есть эти формы на 2 языках. Грузинский и английский. Когда я отправляю форму, если модель на английском - обе формы показываются на английском. То же самое для грузинского. Во время отладки я обнаружил, что представление получило правильные параметры, но Html.TextBoxFor показывает одинаковые значения для обоих языков. Это происходит, когда модель недопустима и возвращает представление «Правка».
Модель. (пример)
public class FormModel
{
public string LastName{ get; set; }
public string FirstName{ get; set; }
public int LangId { get; set; }
}
Edit.cshtml
@model List<Blabla.FormModel>
@{
ViewBag.Title = "Edit";
Layout = "~/Views/Blabla/_Layout.cshtml";
}
@foreach (var item in Model.forms){
@using (Html.BeginForm("Edit", "Blabla", FormMethod.Post, new { enctype = "multipart/form-data" })){
@Html.Partial("~/Views/Blabla/Form.cshtml", item)
}
}
Form.cshtml
@model Blabla.FormModel
<div class="form-group">
@Html.LabelFor(Model => Model.FirstName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(Model => Model.FirstName, new { htmlAttributes = new { @class = "form-control " + @Model.FirstName} })
@Html.ValidationMessageFor(Model => Model.FirstName, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(Model => Model.FirstName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(Model => Model.FirstName, new { htmlAttributes = new { @class = "form-control " + @Model.FirstName} })
@Html.ValidationMessageFor(Model => Model.FirstName, "", new { @class = "text-danger" })
</div>
</div>
@Html.HiddenFor(model => Model.LangId)
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>