У меня в БД 2 таблицы: «Соревнования» и «Ответы на соревнования».Каждый конкурс всегда будет иметь 3 ответа.Я хочу иметь возможность редактировать Конкурс и Ответы на Конкурс для одного и того же представления.Мне удалось заставить представление работать, используя шаблоны редактора
Итак, это мой шаблон редактора:
@ModelType golfbug.Answer
<div class="editor-label left">
Answer:<br />
</div>
<div class="editor-field right">
@Html.HiddenFor(Function(model) model.CompetitionID)
@Html.HiddenFor(Function(model) model.CompetitionAnswersID)
@Html.EditorFor(Function(model) model.CompetitionAnswer)
</div>
<div class="clear"></div>
И это мое представление
@ModelType golfbug.Competition
@Code
ViewData("Title") = "Edit"
End Code
<h2>Edit</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"> </script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@Using Html.BeginForm()
@Html.ValidationSummary(True)
@<fieldset>
<legend>Competition</legend>
@Html.HiddenFor(Function(model) model.CompetitionID)
<div class="editor-label left">
@Html.LabelFor(Function(model) model.ClientID, "Client")
</div>
<div class="editor-field right">
@Html.DropDownList("ClientID", String.Empty)
@Html.ValidationMessageFor(Function(model) model.ClientID)
</div>
<div class="clear"></div>
<div class="editor-label left">
@Html.LabelFor(Function(model) model.StartDate)
</div>
<div class="editor-field right">
@Html.EditorFor(Function(model) model.StartDate)
@Html.ValidationMessageFor(Function(model) model.StartDate)
</div>
<div class="clear"></div>
<div class="editor-label left">
@Html.LabelFor(Function(model) model.CompetitionName)
</div>
<div class="editor-field right">
@Html.EditorFor(Function(model) model.CompetitionName)
@Html.ValidationMessageFor(Function(model) model.CompetitionName)
</div>
<div class="clear"></div>
<div class="editor-label left">
@Html.LabelFor(Function(model) model.CompetitionDetails)
</div>
<div class="editor-field right">
@Html.EditorFor(Function(model) model.CompetitionDetails)
@Html.ValidationMessageFor(Function(model) model.CompetitionDetails)
</div>
<div class="clear"></div>
<div class="editor-label left">
@Html.LabelFor(Function(model) model.CompettionQuestion)
</div>
<div class="editor-field right">
@Html.EditorFor(Function(model) model.CompettionQuestion)
@Html.ValidationMessageFor(Function(model) model.CompettionQuestion)
</div>
<div class="clear"></div>
@Html.EditorFor(Function(model) model.Answers)
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
End Using
<div>
@Html.ActionLink("Back to List", "Index")
</div>
КогдаЯ нажимаю кнопку сохранения, мне нужен контроллер, чтобы обновить ответы в таблице ответов.На данный момент у меня просто есть код, сгенерированный Visual Studio.Я предполагаю, что должен пройтись по ответам и обновить их, но я не уверен, как это сделать.
Вот мой код контроллера:
Function Edit(competition As Competition) As ActionResult
If ModelState.IsValid Then
db.Competitions.Attach(competition)
db.ObjectStateManager.ChangeObjectState(competition, EntityState.Modified)
db.SaveChanges()
Return RedirectToAction("Index")
End If
ViewBag.ClientID = New SelectList(db.Clients, "ClientID", "ClientName", competition.ClientID)
Return View(competition)
End Function
Любая помощь будет признательна,Я искал в Google уже 2 дня.