2011-12-11 72 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类一样。你有没有尝试我的建议? –

相关问题