Asp.Net MVC 从模型创建视图脚手架不生成 int 属性
Posted
技术标签:
【中文标题】Asp.Net MVC 从模型创建视图脚手架不生成 int 属性【英文标题】:Asp.Net MVC create view scaffolding from model is not generating int properties 【发布时间】:2015-09-14 10:36:24 【问题描述】:从某个模型创建视图时,注意到模型中的整数属性不会在视图中生成。我看了一些关于 MVC 的教程,它们都很好地生成了整数属性。我该如何解决这个问题?
这是学生模型和生成的列表视图的一些代码:(不期望应该生成 id,但 TotalMarks 是)
[Table("Student")]
public partial class Student
public int Id get; set;
[StringLength(50)]
public string Name get; set;
public int? TotalMarks get; set;
@model IEnumerable<MVCTutorial.Models.Student>
<p>
@html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th></th>
</tr>
@foreach (var item in Model)
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new /* id=item.PrimaryKey */ ) |
@Html.ActionLink("Details", "Details", new /* id=item.PrimaryKey */ ) |
@Html.ActionLink("Delete", "Delete", new /* id=item.PrimaryKey */ )
</td>
</tr>
</table>
【问题讨论】:
尝试使用 item.ID 而不是 item.primarykey @Html.ActionLink("Edit", "Edit", new id=item.ID ) Scaffolding 生成的视图是源集合的基本表格数据表示。您可以根据需要对其进行编辑,同样您可以在 @Html.ActionLink("Edit ", "编辑", new / id=item.PrimaryKey */ ) . 可能是因为 (TotalMarks) 可以为空 (int?) @Ala 我不这么认为,因为在我看过的教程中它可以为空。 我尝试使用您的 Student 实体进行相同操作,但在我的情况下,它同时生成了 Name 和 TotalMarks。我没有遇到任何问题。 【参考方案1】:Visual Studio 2013 没有构建整数属性,因为在创建视图时我没有选择任何“数据上下文类”。我选择了“数据上下文类”并解决了问题。现在它正在生成视图中的 TotalMarks 属性。
【讨论】:
以上是关于Asp.Net MVC 从模型创建视图脚手架不生成 int 属性的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC4 视图中的模型和 ItemModel 绑定
如何在 ASP.NET MVC 3 中为填充的下拉列表创建视图模型