PDA

View Full Version : سوال: مشکل در نمایش متن



saviorperi
یک شنبه 12 خرداد 1392, 20:55 عصر
سلام دوستان
شاید سوالم خیلی ساده باشه، ولی شرمنده من نتونستم مشکل رو تشخیص بدم.
فرض کنید تو یک مدل یک پراپرتی از نوع string و multiline تعریف کردیم، خوب تو صفحه ثبت یک نمونه جدید از این کلاس یک textarea برای پراپرتی ذکر شده ایجاد میشه، و فرض کنید ما مقدار زیر رو ثبت کردیم :

"سلام
این یک نمونه است
پایان"

و با موفقیت در پایگاه داده ثبت میشه، حالا مشکل اینجاست که وقتی میخام رکورد های ثبت شده رو نشون بدم رکورد هایی مثل مثال بالا تقریبا به این صورت نمایش داده میشن :

"سلام این یک نمونه است پایان"

یعنی سطربندی ها اصلا اعمال نمیشن، عجیبه که وقتی این متون رو درون textarea نمایش میدم چنین مشکلی وجود نداره، موندم چیکار کنم، دوستان لطفا منو راهنمایی کنید، چیکار باید کرد ؟

forestasphalt
دوشنبه 13 خرداد 1392, 09:51 صبح
از @html.raw(اینجا اسمه پرپرتی که رو که میخوای نشون بدی قرار بده)
raw کدهای اچ تی ام الی که توی پروپرتی هست رو نشون میده ولی در استفاده از اون باید احتیاط کرد!

saviorperi
دوشنبه 13 خرداد 1392, 19:07 عصر
از @html.raw(اینجا اسمه پرپرتی که رو که میخوای نشون بدی قرار بده)
raw کدهای اچ تی ام الی که توی پروپرتی هست رو نشون میده ولی در استفاده از اون باید احتیاط کرد!

ممنون دوست عزیز، ولی از Html.Raw استفاده کرده بودم و مشکل حل نشده بود، همچنین در مورد تگ <pre> هم همینطور، پس مشکل از کجاست ؟

forestasphalt
دوشنبه 13 خرداد 1392, 20:23 عصر
اگه توی دیتا بیس "سلام </br>
این یک نمونه است </br>
پایان </br>"
ذخیره شده باشه قطعا با raw به همون صورت صحیح نشون داده میشه Html.Raw اطلاعات رو به همراه تگ های آن نشون میده،محتویات جدول رو بذارید یا کد Html.Raw رو بذارید تا بررسی شود

saviorperi
دوشنبه 13 خرداد 1392, 21:17 عصر
اگه توی دیتا بیس "سلام </br>
این یک نمونه است </br>
پایان </br>"
ذخیره شده باشه قطعا با raw به همون صورت صحیح نشون داده میشه Html.Raw اطلاعات رو به همراه تگ های آن نشون میده،محتویات جدول رو بذارید یا کد Html.Raw رو بذارید تا بررسی شود

فکر textarea به جای br از \n برای جدا سازی سطر ها استفاده میکنه، و فکر کنم دلیل اینکه سطر ها فقط تو textarea مشخص میشن هم همینه، حالا نمیدونم چطور میشه کاری کرد که مقدار بازگشتی textarea بر اساس تگ های html مثل همین br باشه. حتما راهی وجود داره، چون ما میبینیم که اکثر وبسایت و وبلاگها از همین textarea برای ثبت نظر استفاده میکنن و همچین مشکلی هم وجود نداره.

mo.esmp
دوشنبه 13 خرداد 1392, 23:26 عصر
توی textarea انتهای خط با \r\n مشخس میشه حالا اگه میخواید متن رو خارج از textarea نشون بدی میتونی اینکار رو بکنی:
Html.Raw(model.PropName.Replace("\r\n", "<br>"))

mo.esmp
دوشنبه 13 خرداد 1392, 23:27 عصر
توی textarea انتهای خط با \r\n مشخس میشه حالا اگه میخواید متن رو خارج از textarea نشون بدی میتونی باید \r\n رو با <br\> جایگزین کنی:
Html.Raw(model.PropName.Replace("\r\n", "&lt;br/&gt;"))

forestasphalt
دوشنبه 13 خرداد 1392, 23:31 عصر
دقیقا منم به همین مطلب دوستمون رسیدم با این امتحان کردم


public ActionResult Index(FormCollection form)
{
string n = form["name"];
n = n.Replace("\r\n", "<br/>");
ViewBag.name = n;
return View();
}

و در view @Html.Raw(ViewBag.name)
توی وبلاگ ها و وب سایت ها از text editor استفاده میکنن که اونا هم همین textarea رو براش میان کد نویسی میکنن مثلا به کدی که این textarea تولید میکنه نگاه کنید اصلا تگ p یا امثال اون اضافه نمیکنه ولی text editor ها به طور اتوماتیک متن رو در تگ p یا div قرار میدن

saviorperi
سه شنبه 14 خرداد 1392, 00:01 صبح
ممنون از دوستان
مثل اینکه این فقط مشکل من نبوده، وقتی دیدم اینجا کسی پاسخ نداد یک جستجوی انگلیسی هم تو نت کردم دیدم خیلیا این مشکل رو داشتن و در پاسخشون همین راه حلی که شما عزیزان بهش اشراه کردین رو پیشنهاد داده بودن.
text editor ها امکانات خیلی خوبی دارن، ولی نمیشه همه جا ازشون استفاده کرد، یعنی مناسب هر جایی نیستن !