如何在mvc

时间:2018-03-16 13:36:47

标签: sql asp.net-mvc linq multiline

我在MVC中创建Project。

我在我的项目中为用户提供了审核功能,但我遇到了一个问题。 所以我需要帮助。

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();
    }

存储

2 个答案:

答案 0 :(得分:1)

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

  1. 设置CKEditor:

    CKEDITOR.replace('editor1');
    
  2. 将数据传递给控制器​​时,将审核文本作为:

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

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

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

答案 1 :(得分:0)

在控制器存储数据库中传递值,如此

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/>");
});

为您的段落标记<p>标记

添加课程