2つのモデルを持つViewModelがあります。ビュー内でモデルにデータがあるかどうかを確認したい場合:サブモデルのデータがViewModelにあるかどうか確認してください
@if (Model.MyModel1 == Empty) { do something }
しかし、私はこれを行う方法を理解できません。このチェックを外すとViewが正常に動作し、データがある場合は問題のないモデルのデータを表示できます。私は今日昨日、そして半日も過ごしましたが、ウェブで見つけたさまざまなアプローチを試してみましたが、どれも働いていませんでした。ViewModelsについて話した人はいませんでした。私が試してみました:
Model.MyModel1.Any()
Model.MyModel1.AsQueryable().Any()
Model.MyModel1[0].value1 == ""
Model.MyModel1 == null
Model.MyModel1.IsEmptyOrNull()
これらの線に沿ってより多くの..
を、私は2種類のエラーを取得し、私は私が手Model.MyModel1.Any()
のような関数使用しようとすると、最初は次のとおりです。
RuntimeBinderException: 'System.Linq.EnumerableQuery<MyThing.Models.MyModel1>' does not contain a definition for 'Any'
を
私はModel.MyModel1[0].value1 == null
ような何かをしようとすると、私が得る:
RuntimeBinderException: Cannot apply indexing with [] to an expression of type 'System.Linq.EnumerableQuery<MyThing.Models.MyModle1>'
ViewModelには、次のとおりです。
namespace MyThing.ViewModel
{
public class combinedModel
{
public IQueryable<MyModel1> MyModel1{ get; set; }
public IQueryable<MyModel2> MyModel1{ get; set; }
}
}
データがない場合にはコントローラはこのコードを使用しています。
var combinedModel = new combinedModel();
combinedModel.MyModel1 = Enumerable.Empty<MyModel1>().AsQueryable();
combinedModel.MyModel2 = Enumerable.Empty<MyModel2>().AsQueryable();
return View(combinedModel);
は、なぜあなたはモデルタイプとして ''のIQueryable <>を使用していますか?どうして 'IEnumerable <>'? – Andrei
@Andreiコントローラ用に投稿したコードは、コントローラコード全体のごく一部です。ほとんどの場合、コントローラーは照会結果をビューに戻しています。私は、クエリ結果があるかどうかを確認するためのクイックチェックを行う 'if'文を持っています。コードセグメントを実行する結果が出ることはありません。クエリ。 – Mrphin