読者です 読者をやめる 読者になる 読者になる

プログラマーな日々

プログラマー兼SEです。好きなツール:WorkFlowy、好きな言語:C#、好きなAWSのサービス:EMR。

単純データバインド

.NET ASP.NET

DataBindメソッドを実行したタイミングで式が評価され、結果の値がその場所に代入されます。

アプリ実行


ソースコード

web.config
<?xml version="1.0"?>
<configuration>
    <system.web>
    </system.web>
</configuration>
HelloWorld.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="HelloWorld.aspx.cs" Inherits="HelloWorld" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        名前は<%# MyName %>です。
    </div>
    </form>
</body>
</html>
HelloWorld.aspx.cs
using System;
using System.Web.UI;

public partial class HelloWorld : Page {
    protected string MyName = "<span style=\"color:red;\">山田太郎</span>";

    protected void Page_Load(object sender, EventArgs e) {
        DataBind();
    }
}

文字列のサニタイズ

.NET4から「<%# %>」を「<%: %>」と記述すると、文字列をサニタイズしてくれるようになりました。

レスポンスの文字列:「名前は&lt;span style=&quot;color:red;&quot;&gt;山田太郎&lt;/span&gt;です。」