在使用 MVC3 C# 更新到数据库时,允许文本区域为空/空
本文关键字:文本 许文本 区域 MVC3 更新 数据库 | 更新日期: 2023-09-27 18:33:56
我的MVC应用程序上有一个页面,用户可以在其中编辑/上传数据到数据库。
基本上,网站上有一个名为"管理员"的链接,他们单击此处,登录并显示一个页面,允许他们更改/更新网站"特别优惠"部分显示的数据。
"管理员"部分包含一些文本区域,这些文本区域显示数据库表中包含的数据。然后,用户可以更改这些文本区域中显示的数据,然后单击"更新"按钮,然后将此数据上传到数据库,然后站点中的"特别优惠"页面向公众显示此新更新的数据。
我遇到的问题是,如果正在编辑数据的用户尝试使用没有数据的文本区域更新数据库,则"特别优惠"页面将不会加载(它返回如下所示的错误(。我已经检查了数据库表是否将"可为空"选项设置为"True",但这没有区别。
[错误]
"/"应用程序中的服务器错误。
对象引用未设置为对象的实例。说明:执行当前 Web 请求期间发生未经处理的异常。请查看堆栈跟踪,了解有关错误及其在代码中起源位置的详细信息。异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。源错误:
Line 25: @Html.Raw(tbl_special_offers.offer3.Replace(Environment.NewLine, "<br/>"))
这是"特别优惠"视图用于访问数据库和显示数据的代码(使用 Visual Web Developer Express(:
@model IEnumerable<bhgc.Models.tbl_special_offers>
@{
ViewBag.Title = "Special Offers";
}
<div>
<fieldset>
<legend>Special Offers</legend>
<br />
@foreach (var tbl_special_offers in Model)
{
<div style="overflow: hidden; width: 100%;">
<div style="float: left; width: 40%; height: 50%; margin-left: 50px; border: 1px solid #ddd; padding: 15px;">
@Html.Raw(tbl_special_offers.offer1.Replace(Environment.NewLine, " <br/>"))
</div>
<div style="float: right; width: 40%; height: 50%; margin-right: 50px; border: 1px solid #ddd; padding: 15px;">
@Html.Raw(tbl_special_offers.offer2.Replace(Environment.NewLine, " <br/>"))
</div>
</div>
}
</fieldset>
</div>
无论如何,是否允许字段为空,或者在更新时自动在字段中附加一个空格,以便在公众查看"特别优惠"页面时不会返回错误?
有问题的网站和页面目前在 http://www.boarsheadgolfcentre.co.uk/Home/Special
非常感谢。
既然您正在执行的项在 null 上执行替换,为什么不尝试这样的事情
(tbl_special_offers.offer2 ?? String.Empty).Replace(...)
这样你就不应该在null
上替换,并且(希望(避免异常。