我有一个以下模型属性之一是projectDescription,它在SQL Server中生成一个ntext
列。用于ntext属性的ASP.NET MVC textarea标记助手不起作用
型号:
--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....
如下此属性绑定到textarea
标签在View
。但不是显示来自Db的ProjectDesctiption
列的真实数据,而是奇怪地显示了查看页面的整个html源代码页 - 如下图所示。其他标记正确显示数据,如下面同一图像中的ProjectTitle字段所示。我认为这个问题与ntext数据类型和ASP Tag helper for textarea有关。我在数据库中检查过ProjectDescription中某个数据单元的最大长度是相当大的 - 约61968个字符。但我们希望通过合适的textarea长度和宽度显示具有水平和垂直滚动条的此列中的数据,以便用户至少浏览此字段的数据以了解项目描述是什么(例如)或可能会为了某种目的而复制/超出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...
附注 - 从[文档](https://msdn.microsoft.com/en-AU/library/ms187993.aspx)_IMPORTANT! ntext,文本和图像数据类型将在未来版本的SQL Server中删除。避免使用这些数据类型_ –
@StephenMuecke好点。我应该将其更改为nvarchar(max)或更好 - varchar(max),除非有令人信服的理由使用nvarchar。有问题的Db实际上是来自Ms Access Db的转换,我假设谁转换它可能使用Microsoft的迁移工具,该工具会自动将Access的文本列转换为SQL Server中的ntext。但在我们的例子中,我将检查是否需要nvarchar或varchar(max)是否足够。 – nam