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 绑定

Azure 数据库 asp.net mvc [关闭]

使用 ASP.Net MVC 2 脚手架创建编辑表单

如何在 ASP.NET MVC 3 中为填充的下拉列表创建视图模型

如何在 Rider IDE 中进行 ASP.NET MVC 视图脚手架?

ASP.NET MVC 如何从嵌套对象的视图模型集合中动态创建表结构