Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 换行问题-C#.NET MVC_Asp.net Mvc_Entity Framework_Line Breaks - Fatal编程技术网

Asp.net mvc 换行问题-C#.NET MVC

Asp.net mvc 换行问题-C#.NET MVC,asp.net-mvc,entity-framework,line-breaks,Asp.net Mvc,Entity Framework,Line Breaks,今天天气真好!但是……:) 我有以下问题:我有一个更新Mysql数据库中type_文本字段的控制器。用户在texarea中键入文本,单击“更新”,然后,哦,神奇的是,文本被发布到数据库中。但是没有休息 在控制器中,我有: [Authorize] [HttpPost] public string EditComment(FormCollection formValues) { var Commenter = User.Identity.Name; Int64 id = Conver

今天天气真好!但是……:) 我有以下问题:我有一个更新Mysql数据库中type_文本字段的控制器。用户在texarea中键入文本,单击“更新”,然后,哦,神奇的是,文本被发布到数据库中。但是没有休息

在控制器中,我有:

[Authorize]
[HttpPost]
public string EditComment(FormCollection formValues)
{
    var Commenter = User.Identity.Name;
    Int64 id = Convert.ToInt64(Request.Form["id"]);

    string formValue = Request.Form["value"];
    formValue = formValue.Replace("\r\n", "<br/>").Replace("\r", "<br/>");

    comments updateCommnets = db.comments.SingleOrDefault(d => d.id == id && d.commenterName == Commenter);
    updateCommnets.comment = formValue;
    db.SaveChanges();

    return formValue;
}
[授权]
[HttpPost]
公共字符串EditComment(FormCollection formValues)
{
var Commenter=User.Identity.Name;
Int64 id=Convert.ToInt64(Request.Form[“id”]);
字符串formValue=Request.Form[“value”];
formValue=formValue。替换(“\r\n”,“
”)。替换(“\r”,“
”); comments updateCommnets=db.comments.SingleOrDefault(d=>d.id==id&&d.commenterName==Commenter); updateCommnets.comment=formValue; db.SaveChanges(); 返回formValue; }
这让我疯狂了两天

有人能帮我吗?非常感谢

已更新

  • 我使用表来执行内联编辑。post字符串示例:value=Some+text%0ASome2+text2
我会将文本按原样存储在数据库中,而无需将
\r\n
转换为

[Authorize]
[HttpPost]
public ActionResult EditComment(string value, long id)
{
    var commenter = User.Identity.Name;
    var updateCommnets = db.comments.SingleOrDefault(d => d.id == id && d.commenterName == commenter);
    updateCommnets.comment = value;
    db.SaveChanges();
    return Content(value, "text/plain");
}
然后,如果需要显示这些注释,我将编写一个自定义HTML帮助程序来格式化视图中的值

public static MvcHtmlString FormatComment(this HtmlHelper html, string comment)
{
    if (string.IsNullOrEmpty(comment))
    {
        return MvcHtmlString.Empty;
    }
    var lines = comment
        .Split(
            new string[] { Environment.NewLine }, 
            StringSplitOptions.None
        )
        .Select(x => HttpUtility.HtmlEncode(x))
        .ToArray();
    return MvcHtmlString.Create(string.Join("<br/>", lines));
}

不要转换发送到数据库的文本。 使用:


这是

谢谢你的帮助!但还是不行。。。我更新了我电脑里的信息post@evgeniy.labusnkiy,如果您的请求包含危险字符,则可以使用
[ValidateInput(false)]
属性装饰控制器操作。如果这是一个ASP.NET 4.0应用程序,您还需要在web.config中添加
。我建议在
周围使用
,以避免在整个站点上打开它。
@Html.FormatComment(Model.Comment)
@MvcHtmlString.Create(value)