2016-07-09 15 views
1

私は複数のタブを利用するWebアプリケーションを作っています。私は別のモデル一つのタブ で[その他]タブで1タブなどの学生プロフィールに1種類のデータを表示したい は、例えばを必要とする私は、同じビューにRegisterationモデルクラスが必要1つのasp.net mvcビューで2つのモデルを持つことは可能ですか

+0

[ASP.NET MVCフレームワークで複数の送信ボタンを処理するにはどうすればよいですか?](http://stackoverflow.com/questions/442704/how-do-you-handle-multiple-submit-buttons-in –

答えて

3

はい、できSystem.Tupleのいずれかを使用して、 ViewModel(カスタムクラス)を使用してによって、クラス(または)

のViewModelオプション

public class ViewModel1 
{ 
    public StudentProfile profile {get; set;} 
    public Registration Reg {get; set;} 
} 

は、このモデルオブジェクトを使用してビューを結合して、モデルのビューにオブジェクト(または)としてこのViewModel1を渡します。それはTuple<T1, T2>

0

を使用してよりはましだはい、あなただけのメインビューモデル内で、その後巣タブモデル

public class YourMainViewModel 
{ 
    public Tab1ViewModel Tab1 {get; set;} 
    public Tab2ViewModel Tab2 {get; set;} 
} 

をメインビューモデルを追加することができます次に、あなたのビューでは、ちょうどあなたのパーシャルにタブモデルを渡します(あなたのタブのためのパーシャルを使用している場合)

@{Html.RenderPartial("Tab1", Model.Tab1);} 
@{Html.RenderPartial("Tab2", Model.Tab2);} 
0

はい、私は単一のビューでいくつかのモデルを設定するには、少なくとも3つの方法を知っているが、私はそれがのviewmodelsを使用するのですがベストプラクティスだと思います。 エンティティフレームワークを使用している場合は、そのようなことを行うことができます。

モデルでは、ViewModelになるクラスを設定します。

public class StudensP_Registration 
{ 
    public IEnumerable<StudentsProfile> studentsp { get; set; } 
    public IEnumerable<Registration> registration { get; set; } 

} 

このようにコントローラで呼び出すとします。

public ActionResult Index() 
    { 

     StudensP_Registration oc = new StudensP_Registration(); 
     oc.studentsp = db.StudentsProfile; 
     oc.registration = db.Registration; 
     return View(oc); 
    } 

そしてビュー

@using Proyect_name_space.Models; 
@model StudensP_Registration 
    @foreach (ordenes_compra item in Model.studentsp) {#something you  want..} 

に私は私があなたを助けることができると思います。

+0

もちろん、単一のビューに複数のタブがある場合は、タブ構造を追加し、各タブにテーブルを追加します。たとえば、設定するモデルにforeach文を使用することができます。そのタブ – MisaelGaray

関連する問題