2016-06-29 10 views
1

私のMVCアプリケーションにはいくつかのチェックボックス項目がありますが、チェックボックス項目ごとに一意の画像を表示する必要があります。各項目はユニークでユニークな画像でなければなりません。ここで 各チェックボックス項目に一意のイメージを表示する方法は?

は、私が試したものです:

ビュー(Index.cshtml):

//MULTIPLE CHECK BOX 
for (int i = 0; i < Model.CheckBoxItems.Count; i++) //this line throws an exception (null) 
{ 
    <img src="@Url.Content(Model.CheckBoxItems[i].ImageUrl)" /> 
    <div> 

     @Html.HiddenFor(m => m.CheckBoxItems[i].CBName) 
     @Html.LabelFor(l => l.CheckBoxItems[i].CBIsSelected, Model.CheckBoxItems[i].CBName) 

     @Html.CheckBoxFor(r => r.CheckBoxItems[i].CBIsSelected, false); 
    </div> 
} 

コントローラ(HomeController.cs):

[HttpGet] 
    public ActionResult Index() 
    { 
     ModelVariables model = new ModelVariables() 
     {  
      CheckBoxItems = Repository.CBFetchItems()   
     }; 
     return View(model); 
    } 

モデル(ModelVariables.cs):

public class ModelVariables 
{ 
    //CHECKBOX 
    public List<Item> CheckBoxItems { get; set; } 
} 


public class Item 
{ 
    public string CBName { get; set; } 
    public bool CBIsSelected { get; set; } 
    public string ImageUrl { get; set; } 
} 

public static class Repository 
{ 
    public static List<Item> CBFetchItems() 
    { 
     return new List<Item>() 
     { 
      new Item(){ CBName = "Girls?" }, 
      new Item(){ CBName = "Dudes?" }, 
      new Item(){ CBName = "Animals?" }, 
      new Item() { ImageUrl = "~/Assets/ass.PNG"} 
     }; 
    }  
} 

コピー/このコードを貼り付けて実行すると、例外エラーが発生します。

+0

エラーが発生している行を示すことから始めてください。 (さらに、 'App_Data'のファイルはブロックされているので、別のディレクトリに置く必要があります) –

+0

@MattiVirkkunenねえ、質問が更新され、例外がスローされた行の隣にコメントが追加されました。 'Assets'という名前の新しいフォルダを作成してパスを更新しましたが、まだ問題があります。 – ScuddleWuddles

+0

...私はディレクトリ名があなたの現在の問題に関連していたとは言わなかった、それはちょうどFYIだった。 –

答えて

0

あなたのitensの1つだけに画像 のURLが含まれ、他のものはヌル値を持ちます。 url.contentがnull値を処理しようとしているときに、おそらくエラーが発生しています。

Edit2:可能な解決策のコードを追加 申し訳ありませんが、Url.Contentは空の文字列も受け入れることができないため、以前の編集は機能しませんでした。

画像リンクを処理しないために、あなたのひげ剃りコードをチェックする必要があると思います。

if(Model.CheckBoxItems[i].ImageUrl != null) {   
    <img src="@Url.Content(Model.CheckBoxItems[i].ImageUrl)" /> 
} 
+0

どうすればいいですか? – ScuddleWuddles

+0

これで問題が解決するかどうか試してみることができるコードを追加しました – failedprogramming

+0

これを試しましたが、うまくいきませんでしたhmmm – ScuddleWuddles

関連する問題