การนำหลักการ DRYไปใช้กับโซลูชันของ Omar นี่คือส่วนขยาย HTML Helper:
using System.Web.Mvc;
using System.Text.RegularExpressions;
namespace System.Web.Mvc.Html {
public static class MyHtmlHelpers {
public static MvcHtmlString EncodedReplace(this HtmlHelper helper, string input, string pattern, string replacement) {
return new MvcHtmlString(Regex.Replace(helper.Encode(input), pattern, replacement));
}
}
}
การใช้งาน (ปรับปรุง regex):
@Html.EncodedReplace(Model.CommentText, "[\n\r]+", "<br />")
สิ่งนี้ยังมีประโยชน์เพิ่มเติมในการลดความรับผิดชอบลงบนผู้พัฒนา Razor View เพื่อรับประกันความปลอดภัยจากช่องโหว่ XSS
ความกังวลของฉันกับการแก้ปัญหาของยาโคบก็คือว่าการแสดงผลแบ่งบรรทัดที่มีการแบ่งแบบ CSS ความหมาย HTML
\n
ในฐานข้อมูลและคุณต้องการแปลงเป็น<br />
?