【发布时间】:2023-03-09 16:07:01
【问题描述】:
我有以下模型属性,其中一个是 projectDescription,它在 SQL Server 中生成 ntext 列。
型号:
--some other properties here....
[Display(Name = "Project Title")]
[Column(TypeName = "varchar(125)")]
public string ProjectTitle { get; set; }
[Column(TypeName = "ntext")]
public string ProjectDesctiption { get; set; }
--some other properties here....
此属性绑定到View 中的textarea 标记,如下所示。但是,它没有显示来自 Db 的 ProjectDesctiption 列的真实数据,而是奇怪地显示了 View the page 的整个 html 源页面 - 如下图所示。其他标签正确显示数据,如下图的 ProjectTitle 字段所示。我认为这个问题与 ntext 数据类型和ASP Tag helper for textarea 有关。我确实在数据库中检查了 ProjectDescription 中某些数据单元格的最大长度非常大 - 大约 61968 个字符。但是我们确实希望以合理的文本区域长度和宽度以及水平和垂直滚动条显示来自该列的数据,以便用户至少可以浏览该字段的数据以了解项目描述是什么(例如)或可能出于某种目的从 textrea 复制/粘贴数据。 问题:我怎样才能实现这个目标?
查看:
---some html here.....
<div class="form-group">
<label asp-for="ProjectTitle" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="ProjectTitle" class="form-control" />
<span asp-validation-for="ProjectTitle" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="ProjectDesctiption" class="col-md-2 control-label"></label>
<div class="col-md-10">
<textarea asp-for="ProjectDesctiption" class="form-control" rows="6" cols="15" />
<span asp-validation-for="ProjectDesctiption" class="text-danger"></span>
</div>
</div>
...some other html here...
【问题讨论】:
-
旁注 - 来自docs 重要!在 SQL Server 的未来版本中将删除 ntext、text 和 image 数据类型。避免使用这些数据类型
-
@StephenMuecke 好点。我应该将其更改为 nvarchar(max) 或更好的 - varchar(max) 除非有令人信服的理由使用 nvarchar。有问题的 Db 实际上是从 Ms Access Db 转换而来的,我假设转换它的人可能使用了 Microsoft 的迁移工具,该工具自动将 Access 的文本列转换为 SQL Server 中的 ntext。但在我们的例子中,我会检查是否需要 nvarchar 或 varchar(max) 就足够了。
标签: asp.net-mvc visual-studio-2015 tag-helpers