微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MVC中Displayfor上的自动换行

如何解决MVC中Displayfor上的自动换行

我有一个Description(描述)字段,可带回大量文本。当它写到页面时,它显示为一行。我尝试将其包装在下面的两个div中

         <td>
            <div style="word-wrap:break-word;">
                @Html.displayFor(modelItem => item.Description)
            </div>
        </td>

         <td>
            <div style="overflow:auto;">
                @Html.displayFor(modelItem => item.Description)
            </div>
        </td>

奇怪的是,当第一次加载屏幕时,它们似乎都可以工作一秒钟,然后又回到一行。

我在网上看过,曾经回答过说上面的方法应该起作用。

有人知道我缺少什么吗?

任何帮助将不胜感激。

解决方法

注释中的链接有所帮助,但最后我不得不对数据进行计数,以每100个字符添加br。然后,如果在第15个循环中没有空格,它将以任何方式加一个。

 public static MvcHtmlString Display100<TModel,TValue>(this HtmlHelper<TModel> html,Expression<Func<TModel,TValue>> expression)
    {
        var metadata = ModelMetadata.FromLambdaExpression(expression,html.ViewData);
        var model = html.Encode(metadata.Model);
                                                  
        if (String.IsNullOrEmpty(model))
        return MvcHtmlString.Empty;

        if (model.Length > 100)             
        for (int i = 100; i <= model.Length; i++)
        {
                if (model.Length - i > 0)
                {         
                    
                    if (Char.ToString(model[i]) == " ")
                    {
                        model = model.Insert(i,"<br />");
                        i += 100;
                        i = i.Round(100);
                    }
                    if(((double)i/100) % 1 > 0.15)
                    {
                        model = model.Insert(i,"<br />");
                        i += 100;
                        i = i.Round(100);
                    }
                }
        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。