Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.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
C# MVC3在ViewBag文本中添加换行符_C#_Asp.net Mvc 3_Text_Line Breaks_Viewbag - Fatal编程技术网

C# MVC3在ViewBag文本中添加换行符

C# MVC3在ViewBag文本中添加换行符,c#,asp.net-mvc-3,text,line-breaks,viewbag,C#,Asp.net Mvc 3,Text,Line Breaks,Viewbag,我有一个MVC3 C#.Net web应用程序。我在一个数据表中循环。有些行正在导入OK,有些行未导入OK。我想以列表格式将错误列表发送回视图。我正在将以下文本指定给ViewBag属性 Input error on Row(1) Cell(3) Input string was not in a correct format.<br/> Input error on Row(4) Cell(3) Input string was not in a correct format.<

我有一个MVC3 C#.Net web应用程序。我在一个数据表中循环。有些行正在导入OK,有些行未导入OK。我想以列表格式将错误列表发送回视图。我正在将以下文本指定给ViewBag属性

Input error on Row(1) Cell(3) Input string was not in a correct format.<br/> Input error on Row(4) Cell(3) Input string was not in a correct format.<br/>

有什么想法吗?

使用
字符串[]
保存错误。这样一来,它们是一组格式良好且不同的错误,而不仅仅是一个长字符串

在控制器中,初始化
ViewBag
属性:

ViewBag.Errors = new string[] { "First error", "Second error" };
在您的视图中,显示以下错误:

@foreach (string error in ViewBag.Errors)
{
    @Html.Label(error)
    <br />
}
@foreach(ViewBag.Errors中的字符串错误)
{
@Html.Label(错误)

}
关注点分离
您不应该在控制器内处理标记布局(即换行符或任何其他DOM元素)。演示文稿应由视图单独处理。这就是为什么最好传递一个
字符串[]

当您在视图中抛出时,使用

@Html.Raw(ViewBag.Test)
而不是

@ViewBag.Test
这将向编译器表明字符串是html,不需要这样编码。

这对我来说很有用:

控制器:

 ViewBag.Msg += Environment.NewLine + "xxxx";
视图:

@Html.Raw(@ViewBag.Msg.Replace(Environment.NewLine,“
”)


我的首选方法是在控制器代码中的行时间中添加一个

,作为ViewData[“msg”],然后从razor页面中提取,如下所示

控制器代码:

ViewData["msg"] = "Your Query <br /> has been processed.";

@Shark…我选择这个答案是基于你的“关注点分离”mentioned@MikeTWebb当然,我坚信美国MVC开发者应该严格遵守这一点。它允许容易维护的代码。@post…这是可行的,但再次决定将标记语言保留在视图中,而不是控制器中。谢谢你能给答案加些解释吗?
<p class="@ViewBag.MsgColor">
        @Html.Raw(@ViewBag.Msg.Replace(Environment.NewLine, "<br/>"))
 </p>
ViewData["msg"] = "Your Query <br /> has been processed.";
@Html.Raw(@MsgFormatted)