1

「Supplier」テーブルの各レコードには、bool の「SupplierEmailProvided」列があります。画面に値を表示するには:

@Model.Suppliers.Where(s => s.Id == products.PreferredSupplierId).FirstOrDefault().SupplierEmailProvided

これは問題なく動作しますが、ATM ではその値に応じて「true」または「false」が (画面上に) 表示されます。

値がFALSEの場合は無効になるチェックボックスに変更したい

次のようなものを試しました:@Html.CheckBoxFor(s => s.Suppliers.Where(x => x.SupplierEmailProvided)).FirstOrDefault().SupplierEmailProvided'

しかし良くない。アイデアはありますか?

編集 だから私は前にすべての提案をしました。

@if((s => s.Id == products.PreferredSupplierId).FirstOrDefault().SupplierEmailProvided)
                     {   
                            @Html.CheckBoxFor(s => s.Suppliers
                                                    .Where(x => x.Id == products.PreferredSupplierId)
                                                    .FirstOrDefault()
                                                    .SupplierEmailProvided)

                             @Html.CheckBox("SupplierEmailProvided",true,
                             (Model.Suppliers.Where(x => x.SupplierEmailProvided)).FirstOrDefault().SupplierEmailProvided 
                             ? (object) new { disabled = "false" } : (object) new {disabled = "true" })
                     }

最初の if ステートメントは「operator 」と言います。ラムバ型のオペランドには適用できませんか?

助けはありますか?

4

3 に答える 3

2

ブール型であると仮定するSupplierEmailProvidedと、ロジックは明確なはずですが、テストしていません

前述のように、値がfalseの場合、チェックボックスは無効な状態にする必要があります。

@if(Model.Suppliers.Where(x => x.SupplierEmailProvided)).FirstOrDefault().SupplierEmailProvided)
{
     Html.CheckBox("SupplierEmailProvided",true)
}else
{
     Html.CheckBox("SupplierEmailProvided",false,new{ disabled ="true"} )
}
于 2013-07-17T13:32:36.837 に答える
0

これを試しましたか?

@if(Model.Suppliers.FirstOrDefault(s => s.Id == products.PreferredSupplierId).SupplierEmailProvided)
{
    html code 
}
else 
{
    ...
}
于 2013-07-17T13:17:33.540 に答える
0

動作するCheckBoxForはずです。ブラケットを確認してください。割り当てを半分に分割してください。

@{
    var supplier = Model.Suppliers.Where(s => s.Id == products.PreferredSupplierId).FirstOrDefault();
}
@Html.CheckBoxFor(model => supplier.SupplierEmailProvided)

または、あなたがやっているように1行で:

@Html.CheckBoxFor(model => model.Suppliers
                                .Where(s => s.Id == products.PreferredSupplierId)
                                .FirstOrDefault()
                                .SupplierEmailProvided)
于 2013-07-17T13:31:53.240 に答える