のasp.net MVCで/ disbaleを有効にするか、表示/非表示を実行するには、コードの抜粋です:どのように私は以下、コントローラを介してビューにいくつかのViewDataビュー袋を渡しています2
IProductRepository prodResp = new ProductRepository();
Product getGarages = prodResp.GetDetailsForGarages((int)Session["EventID"]);
Product getHelmets = prodResp.GetDetailsForHelmet((int)Session["EventID"]);
if (getGarages == null)
{
ViewBag.Garages = null;
}
ViewBag.Garages = getGarages;
int totalGarages = getGarages.QtyAvailable;
var garages = Enumerable.Range(1, totalGarages).Select(x => new SelectListItem { Value = x.ToString(), Text = x.ToString() });
ViewBag.GaragesDropDown = new SelectList(garages.ToList(), "Value", "Text");
if (getHelmets == null)
{
ViewBag.helmets = null;
}
ViewBag.helmets = getHelmets;
return View(booking);
}
ビュー
<% if (Convert.ToBoolean(ViewBag.boolSecondDriver))
{%>
<lable>Second Driver Availablity For this Event</lable><br />
<lable>Secondriver:</lable> <%: Html.TextBox("SecondDriver") %>
<br />
<lable>SecondriverPrice:</lable> <%: ViewBag.trackday.SecondDriverPrice %>
<br /><br />
<lable>Number of Helmets Available For this Event</lable><br /><br />
<lable>No of Helmets:</lable><%: ViewBag.helmets.QtyAvailable%><br />
<lable>Price per unit:</lable><%: ViewBag.helmets.UnitCost%> <br /><br />
<lable>Number of Garages Available For this Event</lable><br /><br />
<lable>No of Garages:</lable> <%: ViewBag.Garages.QtyAvailable%><br />
<lable>price per unit:</lable><%: ViewBag.Garages.UnitCost%>
<%}
else{ %>
<lable>Second Driver Availablity For this Event</lable><br />
<lable>Free</lable>
<br /><br />
<lable>Number of Helmets Available For this Event</lable><br /><br />
<lable>No of Helmets:</lable><%: ViewBag.helmets.QtyAvailable%><br />
<lable>Price per unit:</lable><%: ViewBag.helmets.UnitCost%> <br /><br />
<lable>Number of Garages Available For this Event</lable><br /><br />
<lable>No of Garages:</lable> <%: ViewBag.Garages.QtyAvailable%><br />
<lable>price per unit:</lable><%: ViewBag.Garages.UnitCost%>
<%} %>
私が午前問題はviewbag.valueの値がnullの場合、私は尊敬viewbag.valuesは、したがって、私はエラーを取得しています、ビューで非表示にする必要があり、その後Viewbagを非表示にしたり再表示カントです:ランタイムを実行できませんヌル参照上のバインディング任意の提案や代替案が高く評価されます。
私はあなたが正しいと思います、問題はimです2-3の表を使用してこのビューにデータを入力します。そして、このビューのビューモデルには、他のモデルのすべてのエンティティプロパティが含まれていますが、外部キーを介して関連付けられていますが、きちんとしたソリューションは、親モデルを構築し、推測.. –
私は非常にユーザーコントロールのプロパティを有効にし、非表示を使用してwebformsが快適でしたが、mvcと苦労し、私は限られたスキルがあるか、またはmvcへの露出を言うことができ、 –
@ムハンマド - あなたはそこに着くでしょう、仲間を心配しないでください。 WebFormsは私たち全員に毒を与えました。逸話は読まれ、学習され、コード化され、探索されます。 View/ViewModelは、親/子(例えば、ネストされたビューモデル)を含むビューのすべてに必要なものを作成する必要があります。私たちのチームは、まずViewをハードコードされたHTMLでコーディングし、作成するViewModelを知っているので、コントローラを作成してモデルからデータを取り込みます。 – RPM1984