c# - 更新 - 部分ビュー コントローラ




MVC 4-モデルデータを部分ビューに渡すにはどうしたらいいですか? (2)

私は、特定のモデル(テナント) - AboutMe、MyPreferences - そのような種類のものに関連するいくつかのセクションを持つプロファイルページを構築しています。 これらのセクションのそれぞれは、AJAXを使用してページの一部を更新できるように、部分的に表示されます。

TenantControllerでActionResultをクリックすると、強く型付けされたビューを作成することができ、モデルデータはビューに正しく渡されます。 私は部分的な見解ではこれを達成できません。

_TenantDetailsPartial部分ビューを作成しました。

@model LetLord.Models.Tenant
<div class="row-fluid">
    @Html.LabelFor(x => x.UserName) // this displays UserName when not in IF
    @Html.DisplayFor(x => x.UserName) // this displays nothing
</div>

私は次に、部分的なビューをレンダリングするビューMyProfileを持っています:

@model LetLord.Models.Tenant
<div class="row-fluid">
    <div class="span4 well-border">
         @Html.Partial("~/Views/Tenants/_TenantDetailsPartial.cshtml", 
         new ViewDataDictionary<LetLord.Models.Tenant>())
    </div>
</div>

@if(model != null){}中の@if(model != null){} DIVの中にコードをラップすると、ページに何も表示されないので、空のモデルがビューに渡されていると推測しています。

ActionResultから厳密に型指定されたビューを作成すると、どのようにして 'セッション'のユーザーがビューに渡されますか? 「セッション」のユーザをActionResultから作成されていない部分ビューに渡すにはどうすればよいですか? コンセプトについて何か不足している場合は、説明してください。


モデルデータを部分ビューに渡す3つの方法(もっとあるかもしれない)

これはビューページです

方法1ビューに移入

@{    
    PartialViewTestSOl.Models.CountryModel ctry1 = new PartialViewTestSOl.Models.CountryModel();
    ctry1.CountryName="India";
    ctry1.ID=1;    

    PartialViewTestSOl.Models.CountryModel ctry2 = new PartialViewTestSOl.Models.CountryModel();
    ctry2.CountryName="Africa";
    ctry2.ID=2;

    List<PartialViewTestSOl.Models.CountryModel> CountryList = new List<PartialViewTestSOl.Models.CountryModel>();
    CountryList.Add(ctry1);
    CountryList.Add(ctry2);    

}

@{
    Html.RenderPartial("~/Views/PartialViewTest.cshtml",CountryList );
}

方法2の通過ViewBag

@{
    var country = (List<PartialViewTestSOl.Models.CountryModel>)ViewBag.CountryList;
    Html.RenderPartial("~/Views/PartialViewTest.cshtml",country );
}

方法3はモデルを通過する

@{
    Html.RenderPartial("~/Views/PartialViewTest.cshtml",Model.country );
}


また、これは動作させることができます:

@{
Html.RenderPartial("your view", your_model, ViewData);
}

または

@{
Html.RenderPartial("your view", your_model);
}

RenderPartialやMVCの同様のHTMLヘルパーの詳細については、 この人気のあるスレッドを参照してください







asp.net-mvc-views