Entity framework ASP.NET MVC 4实体框架中部分视图和模型绑定的多实例处理
这是我的控制器代码Entity framework ASP.NET MVC 4实体框架中部分视图和模型绑定的多实例处理,entity-framework,asp.net-mvc-4,Entity Framework,Asp.net Mvc 4,这是我的控制器代码 namespace MultipleInstance.Controllers { public class Default1Controller : Controller { private MVCDemoEntities db = new MVCDemoEntities(); public ActionResult Index() { Order ord = new Order(); //ord.Bi
namespace MultipleInstance.Controllers
{
public class Default1Controller : Controller
{
private MVCDemoEntities db = new MVCDemoEntities();
public ActionResult Index()
{
Order ord = new Order();
//ord.BillingAddress = new Address1();
//ord.ShippingAddress = new Address();
return View(ord);
}
public ActionResult ProcessForm(Order ord)
{
return PartialView("Index");
}
}
}
这是我的索引视图
@using(Html.BeginForm("ProcessForm","Default1",FormMethod.Post))
{
<h3>Basic Details</h3>
@Html.Partial("_BasicDetails")
<h3>Shipping Address</h3>
@Html.Partial("_Address",
new ViewDataDictionary()
{
TemplateInfo = new TemplateInfo()
{ HtmlFieldPrefix = "ShippingAddress" } })
<input type="submit" value="Submit" />
}
提前谢谢。这应该行得通
@Html.Partial("~Views/shared/_BasicDetails.cshtml", Model)
您需要将模型传递给它[并且应该在您的操作中对其进行初始化],因为我在您的代码中看到,您正在局部视图中使用它局部视图的路径是什么,索引视图的路径是什么~Views\shared\u BasicDetails.cshtml~Views\Default1\index.cshtmlhave您尝试过使用这个
@Html.partial吗(“_基本细节”)
部分视图的完整路径?是的,两种方式都有效。有人能告诉我如何将所有表的数据保存到db吗?我需要编写单独的操作方法吗?我使用的是实体框架。请给我一些想法作为最佳实践,使您的模型视图控制器不受任何业务相关编码的影响,即:创建一个能够与您的数据库层通信,不管它是实体框架还是其他方式,只需在控制器中调用此业务模型,例如:Employees.GetDetails()
在显示一名员工详细信息的视图中使用,以及Employees.ListAll()
获取您拥有的员工列表……等等[HttpPost]public ActionResult ProcessForm(Order Order){if(ModelState.IsValid){db.Orders.Add(ord);db.SaveChanges();}返回视图(ord);我写了下面的代码来保存数据,但值只能插入到orders表中,而不能插入到address页。所以我需要为业务相关代码创建单独的类,每次需要时我都应该调用??
@model MultipleInstance.Address
<table>
<tr>
<td>@Html.LabelFor(m => m.Street1)</td>
<td>@Html.TextBoxFor(m => m.Street1)</td>
</tr>
<tr>
<td>@Html.LabelFor(m => m.Street2)</td>
<td>@Html.TextBoxFor(m => m.Street2)</td>
</tr>
<tr>
<td>@Html.LabelFor(m => m.Country)</td>
<td>@Html.TextBoxFor(m => m.Country)</td>
</tr>
<tr>
<td>@Html.LabelFor(m => m.PostalCode)</td>
<td>@Html.TextBoxFor(m => m.PostalCode)</td>
</tr>
</table>
public partial class Order
{
public int Id { get; set; }
public string OrderID_ { get; set; }
public string CustomerID_ { get; set; }
public string SelectType { get; set; }
public Address ShippingAddress { get; set; }
}
public partial class Address
{
public int Id { get; set; }
public string Street1 { get; set; }
public string Street2 { get; set; }
public string Country { get; set; }
public string PostalCode { get; set; }
}
@Html.Partial("~Views/shared/_BasicDetails.cshtml", Model)