我在asp.net mvc2中有这样的模型:
例如:我如何在表RouteDetails
中插入数据?在db中有一个名为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>
<% } %>
但这不起作用(如果我没有关系,一切都好,但在我的情况下一切都很糟糕。)
为什么我不能轻易写出模型=&gt; model.RouteId?
答案 0 :(得分:0)
乍一看,看起来你的问题就在这里
<%= Html.TextBoxFor(model => model.Route.RouteId) %>
这意味着您正在尝试创建一个新的路由对象,我不相信您正在尝试这样做。看起来您想要将Route Detail添加到现有路线。
尝试将Route拉出数据库,将Route Detail添加到RouteDetails集合,然后保存Route对象。