=x= 🌵 NEWS 前台 View 頁面後端功能製作。
📌 新聞內容頁則比較單純,由新聞標題、新聞主要內容區、新聞組圖,這3個區塊組成。
runat="server"這樣才抓得到。protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack) {
        loadNews();
    }
}
private void loadNews()
{
    List<ImagePath> savePathList = new List<ImagePath>();
    string guidStr = Request.QueryString["id"];
    //如果沒有網址傳值就導回新聞列表頁
    if (String.IsNullOrEmpty(guidStr)) {
        Response.Redirect("~/Tayanahtml/new_list.aspx");
    }
    //依取得 guid 連線資料庫取得新聞資料
    SqlConnection connection = new SqlConnection(WebConfigurationManager.ConnectionStrings["TayanaYachtConnectionString"].ConnectionString);
    string sql = "SELECT * FROM News WHERE guid = @guid";
    SqlCommand command = new SqlCommand(sql, connection);
    command.Parameters.AddWithValue("@guid", guidStr.Trim());
    connection.Open();
    SqlDataReader reader = command.ExecuteReader();
    if (reader.Read()) {
        //渲染新聞標題
        newsTitle.InnerText = reader["headline"].ToString();
        //渲染新聞主文
        newsContent.Text = HttpUtility.HtmlDecode(reader["newsContentHtml"].ToString());
        string loadJson = HttpUtility.HtmlDecode(reader["newsImageJson"].ToString());
        //反序列化 JSON 格式
        savePathList = JsonConvert.DeserializeObject<List<ImagePath>>(loadJson);
    }
    connection.Close();
    //渲染新聞組圖
    if (savePathList?.Count > 0) {
        string imgHtmlStr = "";
        foreach (var item in savePathList) {
            imgHtmlStr += $"<p><img alt='Image' src='upload/Images/{item.SavePath}' style='width: 700px;' /></p>";
        }
        groupImg.Text = HttpUtility.HtmlDecode(imgHtmlStr);
    }
}
//用來接收組圖 JSON 資料
public class ImagePath
{
    public string SavePath { get; set; }
}
🌵 新聞標題用 .InnerText 設定 HTML 標籤的文字內容。
🌵 組圖的 HTML 需加入寬度樣式,限制圖片尺寸,否則有些圖片會超出版面。
📢 今天內容比較單純,可以當成複習之前的操作,比較有趣的部份是意外發現有 .InnerText 這個方法,使用起來很方便而且不會影響外觀樣式,感覺之後可以多多使用在不需送 HTML 標籤的地方。