Как вставить данные в базу данных (SQL Server), если в модели есть «Свойства навигации»? - PullRequest
0 голосов
/ 10 декабря 2011

У меня есть такая модель в asp.net mvc2:

enter image description here

например: как мне вставить данные в таблицу RouteDetails?в дБ есть поле с именем RouteId (которое связано с таблицей Route)

В контроллере я пишу этот код:

[HttpPost]
public ActionResult AddSt(RouteDetail rd)
{
   try
   {
      if (ModelState.IsValid)
      {
         db.AddToRouteDetail(rd);
         db.SaveChanges();
         return RedirectToAction("Index");
      }
   }
   catch (Exception e)
   {
      ModelState.AddModelError("Error!", e);
   }
   return View(rd);
}

и представление:

<% using (Html.BeginForm("AddSt","Route")) {%>
        <%= Html.ValidationSummary(false) %>

        <fieldset>
            <legend>Fields</legend>

            <div class="editor-label">
            </div>
            <div class="editor-field">
                <%= Html.TextBoxFor(model => model.Route.RouteId) %>
                <%= Html.TextBoxFor(model => model.Station)%>
                <%= Html.TextBoxFor(model => model.StationId) %>
            </div>

            <p>
                <input type="submit" value="Create" />
            </p>
        </fieldset>
    <% } %>

но это не работает (если у меня нет отношений, все нормально, но в моей ситуации все плохо).

Почему я не могу просто написать модель => модель.RouteId?

1 Ответ

0 голосов
/ 11 декабря 2011

На первый взгляд кажется, что ваша проблема здесь

 <%= Html.TextBoxFor(model => model.Route.RouteId) %>

Это будет означать, что вы пытаетесь создать новый объект маршрута, а я не верю, что вы пытаетесь это сделать.Похоже, вы хотите добавить подробности маршрута к существующему маршруту.

Попробуйте извлечь маршрут из базы данных, добавив подробности маршрута в коллекцию RouteDetails, затем сохраните объект маршрута.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...