ورود

View Full Version : سوال: مشکل در ساخت داینامیک صفحه وب از روی template



moshavermojarab
سه شنبه 12 آبان 1394, 14:45 عصر
سلام
من می خوام که یک صفحه ای را با توجه به مطالبی که کاربر وارد می کند در asp بسازد و با کلیک روی آدرس ان صفحه باز شود.
من کاری که کردم اینکه یک صفحه به عنوان template معرفی کردم کدش در زیر آمده


<%@ Page Language="C#‎‎" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"

Title="[Title]" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div id="page_wrapper">
<form id="form1" runat="server">
<div align="center" cssclass="text_label">
[PageContent]
</div>
</form>
</div>
</asp:Content>

و کدی برای گرفتن متن داخل این صفحه نوشتم که در زیر آمده


string root = Server.MapPath("~");

//Read the Template file

string Template = root + "\\template_tabloo.aspx";

StringBuilder line = new StringBuilder();

using (StreamReader rwOpenTemplate = new StreamReader(Template))
{

while (!rwOpenTemplate.EndOfStream)
{

line.Append(rwOpenTemplate.ReadToEnd());

}

}



int ID = 0;

string SaveFilePath = "";

string SaveFileName = "";

Random ran = new Random();

ID = ran.Next();



//Page Name Creator with only URL allowed character

string Title = ID.ToString() + "-" + StripURLNotAllowedChars(txtonvan_in.Text);

SaveFileName = Title + ".aspx";

SaveFilePath = root + "\\Pages\\" + SaveFileName;

FileStream fsSave = File.Create(SaveFilePath);

if (line != null)
{ //Replace the page content

line.Replace("[Title]", txtonvan_in.Text);

line.Replace("[PageContent]", txtonvan_in.Text + "\n" + TextArea1.Value.ToString()+"\n"+"<img src="+root+filename+" />");



line.Replace("[ID]", ID.ToString());

StreamWriter sw = null;

try
{//write content

sw = new StreamWriter(fsSave);

sw.Write(line);

}

catch (Exception ex)
{

lblerror.Text = ex.Message;

}

finally
{

sw.Close();

}

}


این صفحه جایی که فراخوانی می شود باز می شود اما حروف فارسی تبدیل به اتدد
میشود لطفا راهنمایی کنید چی کار باید بکنم؟

aliasghar2
سه شنبه 12 آبان 1394, 15:26 عصر
این مشکل به خاطر Encoding میشه اون قسمت FileStream رو باید بهش Encoding بدی

moshavermojarab
سه شنبه 12 آبان 1394, 15:30 عصر
اره خودم هم در سرچ به این نتیجه رسیدم ولی راهنمایی که شده بود اضافه کردن یه تگ globalization به وب کانفیگ بود که تستش کردم فایده ایی نداشت
میشه بیشتر راهنمایی کنید چطوری این filestream را بهش encoding اضافه کنم؟
ممنون از پاسختون

aliasghar2
سه شنبه 12 آبان 1394, 15:40 عصر
این قسمت کدت تغییر میکنه
sw = new System.IO.StreamWriter(fsSave,false,System.Text.En coding.UTF8);
اگه بازم خراب بود Unicode و UTF7 رو هم تست کن

moshavermojarab
سه شنبه 12 آبان 1394, 15:45 عصر
ممنون از جوابتون ولی هر سه تا رو تست کردم جواب نداد :(

aliasghar2
سه شنبه 12 آبان 1394, 15:48 عصر
رو StreamReader هم تست کن اونجا هم بزار شاید موقع خوندن مشکل داره
StreamReader( Stream stream, Encoding encoding)

moshavermojarab
سه شنبه 12 آبان 1394, 16:07 عصر
ممنون از پاسختون درست شد

moshavermojarab
چهارشنبه 13 آبان 1394, 11:28 صبح
رو StreamReader هم تست کن اونجا هم بزار شاید موقع خوندن مشکل داره
StreamReader( Stream stream, Encoding encoding)


ممنون از راهنمایی قبلی تون اون مشکل درست شد
یه سوال دیگه هم داشتم می خواستم بپرسم اگر بخواهیم متن فارسی را با فونت دلخواه و ساز متفاوت بذاریم چه کاری باید بکنم و
یه سوال دیگه اینکه اگر بخواهم همراه این متن image ایی بذارم باید چه کار کنم؟
ممنونم