View Full Version : نمایش بخشی از متن خبر
jaykob
جمعه 09 آبان 1393, 10:30 صبح
سلام
برنامه من Repository و Services داره و من در بخشی می خوام آرشیو اخبار رو نشون بدم و می خوام فقط به طور مثال 200 کاراکتر از متن خبر نشان داده بشه و با یک ادامه لینک بشه به متن کامل خبر . مشکل اینجاست من از کد زیر برای نمایش بخشی از متن خبر در View استفاده می کنم :
@item.Body.Substring(0,200)
و خطای زیر رو می گیرم :
Index and length must refer to a location within the string.
Parameter name: length
ممنون می شم راهنمایی کنید
تشکر
rezaei_y
جمعه 09 آبان 1393, 13:51 عصر
این روش جوابگو نیست شاید یه موقعی مثلا متن خبرت کمتر از 200 کاراکتر باشد یا اصلا بخواهی متن خبرت خالی باشه که بعدا قرار بدی اون موقع با مشکل مواجه میشید
حتی اگر هم این مشکل پیش نیاد ممکنه از یک کلمه فقط دو کاراکتر اولش رو نمایش بده و بریده بشه(سر کاراکتر 200)
به جای این کار یک فیلد دیگه اضافه کن و عنوان خبرت رو توی اون فیلد ذخیره کن
dabirsiaghi
جمعه 09 آبان 1393, 15:20 عصر
جایکوب عزیز بهترین روش اینه که وقتی داری اطلاعات رو از بانک اطلاعاتی بیرون میکشی اونجا مثلا 50 کارکتر اول هر خبر را جدا کنی ولی اگر بخوای تو سطح اپلیکیشن این کار رو بکنی میتونی داخل action مورد نظر با کد زیر مثلا 50 کارکتر اول رو جدا کنی :
item.Body.Length >= 50 ? item.Body.Substring(0, 50):item.Body ;
sunn789
جمعه 09 آبان 1393, 23:43 عصر
البته من از این helper استفاده میکنم
@helper Truncate(string input, int length)
{
if (input.Length <= length)
{
@Html.Raw( @input)
}
else
{
@Html.Raw(input.Substring(0, length))<text>...</text>
}
}
( @Truncate(item.E_Text, 200
dabirsiaghi
شنبه 10 آبان 1393, 01:34 صبح
یک هلپر نوشتم که کامل کار میکنه
public static MvcHtmlString Truncate(this HtmlHelper htmlHelper, string input, int length, string ending = "...")
{
if (input.Length <= length)
{
return new MvcHtmlString(input);
}
var requiredText = input.Substring(0, length - 1);
var ouputText = string.Concat(requiredText.Substring(0, requiredText.LastIndexOf(' ')), ending);
return new MvcHtmlString(ouputText);
}
و به این صورت میشه استفاده کرد :
@foreach (var item in Model) {
<li>
@Html.Truncate(item.Title, 35)
</li>
}
125161
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.