2011-10-18 17 views
0

私の意見では、これは非常に興味深い質問です。 WebFormビューエンジンを使用して厳密に型指定されたビューを持っていますが、私の問題を解決するためにカミソリに変更するとわかりません。.Net MVC 4 View Engine WebForm

問題: 私はタイプIList <Car>のように車のリストを一つのビューを持っています。 そして、私はボタンを持っています"新しい車を作る"そのポップアップ、ポップアップは隠れているフォームで、あなたはそれをポップアップするために、jQueryのUIコマンドを呼び出す$('formName').dialog()、このフォームは可能な新車の属性を持っています厳密に型指定された新しいビューCar。フォームに記入したら、データベースに新車を入れ、Ajaxを使用して車のリストを更新する必要があります。 主な問題は、HTMLヘルパーをIList <Car>に、Carに同時に使用できないことです。

簡潔に:このビューにはどのような種類がありますか? 2つのビューとポップアップを使用して他の1つの呼び出しを定義することは可能ですか?それを剃刀に変えると私の問題は解決しますか?

敬具、

ティト・モライス

+1

あなたの問題が何であるかはわかりません。しかし、RazorにはWebFormsで行うことができないものは何もありません。私は自分でRazorを好きですが、変更しても問題は解決しません。 –

+0

コードサンプルをここに掲載しない限り、誰も確実な答えを出すことはありません。私はあなたが必要とするものを理解していますが、それは間違っている可能性がありますので、コード、plsを投稿してください。 – tugberk

答えて

1

車を一覧表示し、一緒に新しい車を作成するためのビューを混在させないでください。

たとえば、jQueryダイアログまたは同様のコンポーネントを使用して、 "_CreateCar"パーシャルビューを動的に読み込むポップアップを作成できます。その後、部分ビューが完了したら、別のAjaxコールを使用してリストビューをリロードします。その1つのビューがすべての車をリストアップし、新しいものを作成するための責任があるので、

class ListAndCreate 
{ 
public IList<Car> AllCars {get;set;} 
public Car NewCar {get;set;} 
} 

はIMOこれは正しいです:

1

はそうでないかもしれないので、多くのエレガントな解決策は次のように複雑なビューモデルを作成することです。さて、私はあなたのNewCarにあなたのコントローラや何かから値が来ていると仮定しています。ここでモデルをビューに渡す必要があります。

@ジョナスにも言及されているもう1つのアプローチは、正確でより統一されています。部分的なビュー_CreateCarをタイプCarで作成し、それをJquery/Ajaxでレンダリングしてダイアログ/ポップアップにロードし、コントローラーのCreate(Car c)メソッドへのPOSTフォームを持つことができます。

関連する問題