2011-12-11 69 views
1

如果我將數據添加到表女巫沒有關係,這是很好的:數據正在添加。但如果表有關係,這是不對的如何在asp.net mvc中添加數據?

這是我的項目,我的意思是,例如AddSt在RouteController。 http://zalil.ru/32249903 這裏是控制器:

[HttpGet] 
    public ActionResult AddSt(int RouteId) 
    { 
     var routeDetails = (from rd in db.Route 
          join rdd in db.RouteDetail 
          on rd.RouteId equals rdd.Route.RouteId ///check 
          where rd.RouteId == RouteId 
          select rdd).FirstOrDefault(); 
     return View(routeDetails); 
    } 

    [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(); 
    } 

和視圖:

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

    <fieldset> 
     <legend>Fields</legend> 



     <div class="editor-label"> 

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

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

<% } %> 

爲什麼不能寫模型=> model.RouteId ???? 有什麼問題? 爲什麼TrainSheduleDBEntities表RouteDetail不會生成字段RouteID?

+0

此外,爲什麼課Shedule不認識? – DPS

+0

看到 –

+0

後我看了一下1. ModelState.AddModelError(「Error!」,e); //安全風險2.爲什麼你使用L2S,使用EF。 3.通過創建ASP.NET MVC應用程序的實體框架數據模型通過Tom Dykstra瞭解關係。 4.使用剃刀 – RickAndMSFT

回答

1

你只選擇RouteDetail(RDD)

所以,你要model.RouteId

只要堅持對addst操作調試。 看看rd中有什麼。

我在猜測裏面沒有有效的routeid。

+0

[HttpPost] 公衆的ActionResult AddSt(RouteDetail RD),你必須看到這個!當我插入數據庫時​​它不工作! – DPS

+1

嗯,我會擴大 –

+0

所以RouteDetail有型路線的屬性然後做它,並填充時。只能通過你發佈的代碼,然後從你沒有的東西中得到一些猜測。和RouteDetail類一樣。你有沒有嘗試我的建議? –

相關問題