在使用 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

非常感谢。

在使用 MVC3 C# 更新到数据库时,允许文本区域为空/空

既然您正在执行的项在 null 上执行替换,为什么不尝试这样的事情

(tbl_special_offers.offer2 ?? String.Empty).Replace(...)

这样你就不应该在null上替换,并且(希望(避免异常。