asp.net-mvc – ASP.NET MVC 3多个模型到单个表单
发布时间:2020-12-16 00:13:13 所属栏目:asp.Net 来源:网络整理
导读:我正在学习ASP.NET MVC 3并尝试使用单个表单创建一个View,该表单由通过外键链接在一起的多个模型组成.最终目标是将单个表单插入到所有数据库表中. 问题是我无法弄清楚为什么当我右键单击创建视图时,表单不会在cshtml文件中自动生成.自动生成的代码有很多帮助
|
我正在学习ASP.NET MVC 3并尝试使用单个表单创建一个View,该表单由通过外键链接在一起的多个模型组成.最终目标是将单个表单插入到所有数据库表中.
问题是我无法弄清楚为什么当我右键单击创建视图时,表单不会在cshtml文件中自动生成.自动生成的代码有很多帮助,因为我有许多链接在一起的表,以及我必须验证和插入的许多字段.如果无法自动生成表单,那么最有效/优雅的方法是什么? 这是我所拥有的简化. 模型: class Customer
{
[Key]
public UInt64 CustomerId { get; set; }
[Required(ErrorMessage = "Name is required.")]
[Display(Name = "Customer Name")]
[MaxLength(50)]
public string FullName { get; set; }
}
class CustomerAdditionalDetails1
{
[ForeignKey("Customer")]
public UInt64 CustomerId { get; set; }
[Required(ErrorMessage = "This info is required.")]
[Display(Name = "Customer Information")]
[MaxLength(50)]
public string SomeInfo { get; set; }
}
class CustomerAdditionalDetails2
{ // same foreign key as CustomerAddtionalDetails1,but with different properties
}
class CustomerAdditionalDetails3
{ // same foreign key as CustomerAddtionalDetails1,but with different properties
}
...
public class CustomerModel
{
public Customer Customer { get; set; }
public CustomerAdditionalDetails1 CustomerAdditionalDetails1 { get; set; }
public CustomerAdditionalDetails2 CustomerAdditionalDetails2 { get; set; }
public CustomerAdditionalDetails3 CustomerAdditionalDetails3 { get; set; }
...
}
控制器: public ActionResult Submit()
{
return View();
}
[HttpPost]
public ActionResult Submit(CustomerModel customer)
{
return View();
}
请帮忙! 解决方法
生成视图时,是否基于CustomerModel创建强类型视图?如果您正在生成视图,则不会在页面中输出任何值,因为所有属性都是对其他对象的引用.您需要脚手架模型中包含的实际值类型,以自动将它们包含在视图中.也就是说,您可以按照下面的示例自行将它们添加到视图中.
另外我在你的控制器中注意到你的GET方法没有将模型返回给要渲染的视图.如果要根据模型生成视图,则需要传递要为其生成的对象. @model MvcApplication3.Models.CustomerModel
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<fieldset>
<legend>CustomerModel</legend>
</fieldset>
<ul>
<li>@Model.Customer.FullName</li>
<li>@Model.CustomerAdditionalDetails1.SomeInfo1</li>
<li>@Model.CustomerAdditionalDetails2.SomeInfo2</li>
</ul>
<p>
@Html.ActionLink("Edit","Edit",new { /* id=Model.PrimaryKey */ }) |
@Html.ActionLink("Back to List","Index")
</p>
public class CustomerController : Controller
{
public ActionResult Index()
{
CustomerModel customerModel = new CustomerModel()
{
Customer = new Customer()
{
FullName = "Dan"
},CustomerAdditionalDetails1 = new CustomerAdditionalDetails1()
{
SomeInfo1 = "Somewhere1"
},CustomerAdditionalDetails2 = new CustomerAdditionalDetails2()
{
SomeInfo2 = "Somewhere2"
},CustomerAdditionalDetails3 = new CustomerAdditionalDetails3()
{
SomeInfo3 = "Somewhere3"
}
};
return View(customerModel);
}
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Pro ASP.NET Core MVC(一)【前世今生】
- asp.net-mvc – ASP.NET MVC讨论板
- asp.net-mvc-3 – asp.net MVC Web API VS asp.net MVC 4和
- asp.net-mvc – 什么是ASP.Net MVC查看引擎?
- .Net Core in Docker极简入门(下篇)
- 一张图理清ASP.NET Core启动流程
- ASP.NET平台有相当于Heroku吗?
- [ASP.NET MVC] 利用动态注入HTML的方式来设计复杂页面
- asp.net-mvc – ASP.NET MVC 3解决方案结构,数据引用和Auto
- asp.net – 从HTML帮助器中的参数获取属性
推荐文章
站长推荐
- asp.net-mvc – 如何缓存FileContentResult的性能
- asp.net-mvc – 在ASP.NET MVC中禁用布局?
- asp.net-mvc – 更改的域错误 – OpenId授权请求
- asp.net-mvc – 在web.config文件中创建自定义变
- SQL Server 2005:一个使用新创建的User的问题和
- asp.net-mvc – System.Web.Optimization.Bundle
- asp.net – 我想在div中使用li标签,但不推荐这是
- asp.net-mvc – 我如何编写一个ActionFilter来确
- asp.net-mvc – 在ASP.NET MVC中的JSON属性中返回
- .net – 你用你的单元测试测试什么?
热点阅读
