Я поиск в базе данных двух значений:Почему моя модель заполняется, но текстовое поле нет?
public class SearchProjectModel : ISearchProject
{
public int ProjectID { get; set; }
[Display(Name = "Project Number")]
public string JobNumber { get; set; }
[Display(Name = "Project Name")]
public string JobName { get; set; }
}
Индекс Вид:
@model SearchProjectModel
@using (@Html.BeginForm("ManipulateProject", "Project", FormMethod.Post))
{
<div>
@Html.HiddenFor(x => x.ProjectID)
<div class="col-md-3">
@Html.LabelFor(x => x.JobNumber)
@Html.TextBoxFor(x => x.JobNumber, new { @class = "form-control", id = "jobNumber" })
@Html.ValidationMessageFor(x => x.JobNumber)
</div>
<div class="col-md-6">
@Html.LabelFor(x => x.JobName)
@Html.TextBoxFor(x => x.JobName, new { @class = "form-control " })
@Html.ValidationMessageFor(x => x.JobName)
</div>
</div>
<div class="col-md-12 text-center" style="margin-top: 1%">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
}
На контроллере я затем создает новую модель, основанную от того, что было найдено:
public ActionResult ManipulateProject(SearchProjectRequest request)
{
var project = _projectService.GetBy(request);
if (project != null)
{
//When this method is complete the data is in the new model!!!!
return View("Project", Assemble(project));
}
return View("Project", Assemble(new ManipulateProjectModel()));
}
Модель:
public class ManipulateProjectModel : IProject
{
public int ProjectID { get; set; }
[Display(Name = "Project Number"), Required(ErrorMessage = "Required!")]
public string JobNumber { get; set; }
[Display(Name = "Project Name"), Required(ErrorMessage = "Required!")]
public string JobName { get; set; }
//Lots of stuff that is being populated
}
Project Вид:
@model ManipulateProjectModel
<div>
@using (@Html.BeginForm("Save", "Project", FormMethod.Post))
{
@Html.HiddenFor(x => x.ProjectID)
<div class="col-md-12" style="border: 1px dotted black; padding: 1%; margin-top: 1%">
<h3 class="col-md-12 text-center">Project Info</h3>
<div class="col-md-3">
@Html.LabelFor(x => x.JobNumber)
@Html.TextBoxFor(x => x.JobNumber, new { @class = "form-control", id = "jobNumber"})
@Html.ValidationMessageFor(x => x.JobNumber)
</div>
<div class="col-md-6">
@Html.LabelFor(x => x.JobName)
@Html.TextBoxFor(x => x.JobName, new { @class = "form-control "})
@Html.ValidationMessageFor(x => x.JobName)
</div>
//stuff that is populated just fine
</div>
}
</div>
Когда проект найден и сборка называется, новая модель заполняется со всеми данными !!! Но если бы я только искал один из двух параметров, то поле, которое я не заполнял, заполнено на модели, но текстовое поле не отображает данные.
Почему модель заполнена, но представление не заполняет текстовое поле. Он не должен знать и не заботиться о том, было ли заполнено предыдущее представление.
Просьба указать код просмотра. –
не могли бы вы высказать код своего вида. –
@AnnL Обновлено по вашему запросу – Robert