パスをcshtmlファイルに手動で設定し、MVCロジックを無視する

たとえば、同じフォルダに2つのファイルがあるとします。

/Test/View.cshtml

File that needs to be loaded in to a string


/Test/Content.cs

public class Content {
    public string GetView()
    {
        Return View("/Test/View.cshtml",someModel)
    }
}

Web.ConfigからのRouteDataについては気にしないでください

これを行うことのポイントは、GetViewを取得して他の場所で使用できるようにすることです。

私はこの質問を知っているとapprochはwierdですが、私はユニークな状況でCMSシステムを開発しているので、私は本当にこのようなものが必要です。

どのように私はこれを達成することができます:)?


更新:説明

_Layout.cshtml

このファイルには通常どおりRenderBodyがありません。代わりに、このような異なる領域があります。

@{
    Render r = new Render("Content");
}
@r.Print()

各エリアは異なるモジュールfx:ニュースレターまたはギャラリーを印刷しています。それが可能であるためにはこれが行われます:

public interface IModule
{
    string Name { get; set; }
    int Id { get; set; }
    string View();
}


public class ModuleList
{
    public List Modules = new List();

    public ModuleList()
    {
        Modules.Add(new ContentView() { Name = "Content" });
        Modules.Add(new GalleryView() { Name = "Gallery" });
        Modules.Add(new NewsletterView() { Name = "Newsletter" });
    }
}

そしてここに、ContentViewクラス(多くのモジュールのうちの1つ)

public class ContentView: IModule
{
    public string Name { get; set; }
    public int Id { get; set; }

    DbModulesDataContext db = new DbModulesDataContext();

    public string View()
    {
        var q = (from c in db.mContents
                 where c.Id == Id
                 select c).FirstOrDefault();
        return ("

"+q.Html+"

");
    }
}

あなたが今見ているように、HTMLはC#とインラインであるが、私はそれを逆にしたい。 (私は、View()をcshtmlファイルと一緒に動作させたい)

それは今やもう少しの意味ですか?

1
私は本当にあなたがしようとしていることを理解していない。存在しないモデルをどのくらい返す予定ですか?あなたのクラスに存在しないメソッド View()をどれくらい正確に使用しようとしていますか?もっと明確にしようとしていることを説明する必要があります。
追加された 著者 Erik Funkenbusch,
MVCのlibを使用するか、そうしないと...そのGetView()メソッドは再利用する価値がないようです。そして、それは動作しません。
追加された 著者 Henk Holterman,
あなたはパーシャルビューの名前を送ることができます。
追加された 著者 Henk Holterman,
いいえ、私はそれが動作しないことを認識しています。それは、私が望むものを説明するだけだった。それは私がそれを必要とする理由をexmplainする場合は長い話ですが、私は本当に必要に応じて使用できる変数にcshtmlファイルを読み込む必要があります。
追加された 著者 BjarkeCK,
もし私がどこでそれをするのか、その方法がどのように見えるかを私に見せてもらえますか?
追加された 著者 BjarkeCK,
Allright :)私は試してみよう!私は1分の質問を更新します
追加された 著者 BjarkeCK,
更新しました!それが役に立てば幸い!
追加された 著者 BjarkeCK,
それはまだジッバーリッシュですか?
追加された 著者 BjarkeCK,

1 答え

私は最終的に私の解決策を見つけた!

It's right there! http://razorengine.codeplex.com/

しかし、試していただきありがとうございます:)

0
追加された