如何在mvc中将文本框多行存储在与数据库相同的位置

how to store textbox multiliple line in same as database in mvc

我在 MVC 中创建项目。

我在我的项目中添加了向用户提供评论的功能,但我遇到了一个问题。 所以我需要帮助。

Before Adding review - we are showing multiple line(using enter) in text box

After Adding review - it'll display in single line

如何解决这个问题。

JavaScript代码:

 $("#saveReview").click(function () {
        debugger
        if($("#saveReviewText").val() == "")
        {
            $("#BookReviewError").text("Review cannot be Empty!");
        }
        else
        {
            var saveStarReview = $("#saveStarReview").val();
            $.ajax({
                type: "POST",
                url: '@Url.Action("SaveReview", "Book")',
                data: { "reviewText": $("#saveReviewText").val(), "Bookid" : @Model.Book_Id ,"Rateid" : $("#RateId").val() , "StarReview" : saveStarReview },
                cache: false,
            });
            location.reload();
        }
    });

    $("#addReview").click(function () {
        debugger
        if($("#addReviewText").val() == "")
        {
            $("#BookReviewError").text("Review cannot be Empty!");
        }
        else
        {
            $.ajax({
                type: "POST",
                url: '@Url.Action("AddReview", "Book")',
                data: { "reviewText": $("#addReviewText").val(),"Bookid" : @Model.Book_Id , "StarReview" : $("#addStarReview").val() },
                cache: false,
            });
            location.reload();
        }
    });

已添加审核代码:

 <div class="form-group">
                        <textarea class="form-control" rows="3" id="addReviewText"></textarea>
                        @if (!string.IsNullOrEmpty(ViewBag.BookError))
                        { <span class="text-danger validator"> @ViewBag.BookError </span>}
                        <span class="text-danger validator" id="BookReviewError"></span>
                    </div>
                    <input type="button" class="btn btn-default btn-xs button" value="Add Review" id="addReview" />
                </div>

模型代码:

 public ActionResult AddReview(string reviewText, int Bookid, byte StarReview)
    {
        if (!string.IsNullOrEmpty(reviewText))
        {
            _ratingServices.AddUserRating(reviewText, Bookid, StarReview);
        }
        else
        {
            TempData["BookError"] = Resource.Messages.EmptyReviewText;
        }
        return View();
    }

服务代码:

 public void AddUserRating(string addReviewText, int Bookid , byte StarReview)
    {
        Rating rating = new Rating();
        rating.User_Id = ProjectSession.UserID;
        rating.Book_Id = Bookid;
        rating.Review = addReviewText;
        rating.Rating1 = StarReview;
        rating.Rating_Time = DateTime.Now;
        rating.Is_Deleted = false;
        _unitOfWork.RatingRepository.Insert(rating);
        _unitOfWork.Save();
    }

存储

当你像这样在控制器存储数据库中传递值时

public ActionResult AddReview(string reviewText, int Bookid, byte StarReview)
{ reviewText = reviewText.Replace("\n", "<br />");.... so on

当您使用 MVC 中的视图显示评论时,使用 javascript 创建函数

function multiliner(target, replacer) {
var text = $(target).html();
text = text.split("&lt;br /&gt;");
text = text.join(replacer);
$(target).html(text);
}

$(".multiline.paragraph,.user-rating-list .paragraph").each(function () {
     multiliner(this, "<br/>");
});

给你的段落标签 class <p> 标签

您可以使用 CKEditor 来获取或设置您的评论文本。 CKEditor 将数据呈现为 HTML 并且您可以按原样保存它。 渲染值将以相同的格式设置值。 示例代码:

  1. 设置 CKEditor :

    CKEDITOR.replace('editor1');
    
  2. 在将数据传递给控制器​​时获取评论文本:

    var messageBody = CKEDITOR.instances.editor1.document.getBody().getHtml();

邮件正文的格式将与用户输入文本的格式相同。

如果您遇到任何问题,请尝试告诉我。