2

基本的に、Razor/cshtmlビュー内から関数に複数行の文字列を渡したいと思います。

<text>私はこれを達成するために使用できることを望んでいました。

これが私が試していることです:

        @Js.Tsc(@<text>
class Greeter {
    greeting: string;
    constructor (message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}   

var greeter = new Greeter("world");

var button = document.createElement('button')
button.innerText = "Say Hello"
button.onclick = function() {
    alert(greeter.greet())
}

document.body.appendChild(button)
        </text>.ToString())

しかし、私はまだ得ます

コンパイラエラーメッセージ:CS1660:デリゲート型ではないため、ラムダ式を型'string'に変換できません

ライン上@Js.Tsc(@<text>

.ToString()きちんとキャストできたと思いました。これを行う方法はありますか?

私は@"スタイルの文字列を使用できることを知っていますが、それはその間のコードの記述をより複雑にします。

4

1 に答える 1

1

Razor はまだ C# コードなので、他の文字列パラメーターと同じようにスクリプトを渡すと思います。ただし、二重引用符などの特殊文字はエスケープする必要があります。そして、私はあなたが必要だとは思わない@<text>.

@Js.Tsc("class Greeter {
    greeting: string;
    constructor (message: string) {
        this.greeting = message;
    }
    greet() {
        return \"Hello, \" + this.greeting;
    }
}   

var greeter = new Greeter(\"world\");

var button = document.createElement('button')
button.innerText = \"Say Hello\"
button.onclick = function() {
    alert(greeter.greet())
}

document.body.appendChild(button);")
于 2012-12-27T13:30:27.473 に答える