2012-02-09 13 views
0

私は、MVC ASPの代わりにOpenRastaを調べるよう依頼されました。開始点として、MVC ASPからムービーチュートリアルを複製しようとしています。 NET Webサイト。OpenRastaとWebフォームで簡単なCRUDを実装する

私は本当にOpenRastaの残りのスタイルのように、これまで単純なデータベースとIDによってベースGETのハンドラを持っている、

  ResourceSpace.Has.ResourcesOfType<Movie>() 
       .AtUri("/movie/{id}") 
       .HandledBy<MovieHandler>() 
       .RenderedByAspx("~/Views/MovieView.aspx"); 

の形で、私はPOSTの使用を理解し、考えをDELETE私は自分のデータベースから項目を作成/更新したり削除したりすることができますが、残念ながら私はこのビューをどのように行うのか困っています。 OpenRastaのドキュメントで

それは言う:

When you use an aspx page as a view in OpenRasta, you essentially create a template to 
generate content. As such, postbacks and events are not supported. 

私はここで本当にばかされるかもしれないが、私はOpenRastaで必要とされる方法で、ASP.NETページからPOSTおよびDELETEすることができるだろうか?私はコードビハインドページを使用していますが、これは私が固執しているものではありません。

私はASP.NETに精通していません(何年も何もしていません)ので、何かが分からないかもしれませんが、正しい方向にいくつかのポインタを本当に感謝します。

答えて

1

これは、asp.net webformsのポストバックモデル(別名asp.net webformsインフラストラクチャが、asp.net固有のデータをページに連続してポストバックする1つの大量フォームタグを作成する動作)がサポートされていないことを意味しますWebformsコントロールで使用するイベントは機能しません。

MVCスタイルのインタラクションに慣れている場合は、フォームタグの使用方法を理解しているので、いつものように新しいムービーを作成します。

<form method="post"> 
    <fieldset> 
    <input type="text" name="Name" /> 
    <input type="submit" /> 
    </fieldset> 

代替がWebフォームのエンジンを使用してコードでそれを行うことです

<% using(scope(Xhtml.Form<Movie>().Post())) { %> 
    <%= Xhtml.TextBox<Movie>(_=>_.Name) %> 
<% } > 

そして、あなたのハンドラコード

public Movie Post(Movie movie) { 
    // create the movie instance in your db or whatever 
    return new OperationResult.SeeOther { RedirectLocation = movie.CreateUri() }; 
} 

コードは、私の頭の中でコンパイルしている前に、真偽の確認が必要な場合がありますコンパイラに入れてください。

可能であれば、ウェブフォームエンジンから離れる方がいいかもしれないことに注意してください。良い選択肢があります(カミソリ、スパーク、プラグインを選ぶ可能性があります)。

+0

多くの情報に感謝します! OpenRastaはRazorをサポートしていますか? –

+0

私はOpenRasta Razorコーデックを見つけました。使用方法に関するドキュメントはありますか?どのようなprjoect型、ASP.NET WebフォームまたはMVC ASP.NETプロジェクトで使用する必要がありますか? –

+0

まだ新しいドキュメントはありません。新しいオーナーに移行しているので、パッケージ化しただけです。このコードにはデモプロジェクトがあり、それを接続するのに必要な設定をチェックします。ルーズでコンパイルされたビューがサポートされているため、ビューのasp.netプロジェクトは必ずしも必要ではありませんが、resharperのようなツールは正しいプロジェクトタイプがないとテンプレートに適切にアクセスできないと主張します。 – SerialSeb

関連する問題