1

HTML テンプレートを入力してディスクに保存する必要がある WPF アプリケーションに取り組んでいます。

理想的には、MVC プロジェクトを使用してこれを行うことができます。たとえば、View を定義して ViewModel をそれに渡し、出力を Response ストリームではなく FileStream に書き込むことができます。

残念ながら、インターネット アクセスの保証がないため、リモート サーバーでホストすることはできません。また、ローカル Web サーバーの保証もないため、ホストする場所がありません。

これを WPF で行う方法や、MVC プロジェクト (WPF ソリューションから参照できるもの) を Web サーバーのコンテキスト外で動作させる方法はありますか?

または、別のアプローチを取る必要がありますか?

4

1 に答える 1

1

解決策は、 RazorEngineを使用することです

例えば:

public static string RenderPartialViewToString(string templatePath, string templateName, object viewModel)
{
    string text = File.ReadAllText(Path.Combine(templatePath, templateName));


    string renderedText = Razor.Parse(text, viewModel);
    return renderedText;
}

この場合、次の Html & Razor コードを含むファイルですtemplateName.cshtml

<div>        
    <h1>Age: @Model.Age</h1>
    <input type="button" value="Just a Sample Button" />
</div>

として定義さviewModelれた単純な無名オブジェクトです。

var anonObj = new
{
    Age = 10,
};

Razor.Parse()のコンテンツを解析しtemplateName、インライン C# を HTML の値に置き換える魔法を行います。

于 2013-06-28T08:46:54.580 に答える