2013-08-11 2 views
1

я должен пройти, чтобы отобразить ключ вместе с изображением .О в моих примерах я могу отобразить только изображение .как я могу отобразить изображение с текстовым полем, содержащего ключКак пройти словарь с контроллера для просмотра?

Controller: 
         namespace SVGImageUpload.Controllers 
         { 
          public class TestController : Controller 
          { 
           Dictionary<string, string> _imgDict = null;//Dictionary datatype 
           public TestController() 
           { 
            _imgDict = new Dictionary<string, string>(); 
            _imgDict.Add("Image1", "../../Images/wi0096-48.gif"); 
            _imgDict.Add("Image2", "../../Images/down.png"); 
            _imgDict.Add("Image3", "../../Images/wi0054-48.gif"); 
           } 

         [HttpPost] 
           public ActionResult MapIcon(IEnumerable<string> image) 
           { 
            Hidden hid = new Hidden(); 
            // hid.hiddevalue = image1; 
            // string val = ""; 
            foreach (var item in image) 
            { 
             var keyValPair = item.Split('_'); 
             var key = keyValPair[0]; 
             var pair = keyValPair[1]; 

             var imgPath = _imgDict[pair]; 



             string val = imgPath; 
             urls.Add(val); 
             ViewData["list"] = urls; ; 


            } 
            return View("Custumize"); 
         } 

          public ActionResult Custumize() 
          { 
           return View(); 
          } 
         } 
        } 






Razor View:  
      @using (Html.BeginForm()) 
      {              
       foreach (var m in (List<string>)ViewData["list"]) 
       { 



       <ul><li> 

         <img src="@m" alt=""/> 
        </li> 
       </ul> 
       } 




      } 

Я пытался, но не удалось .how сделай это ?

ответ

2

Я использую следующий подход:

Создать ViewModel:

public class TestView 
    { 
     public Dictionary<string, string> dictionary { get; set; } 
    } 

чем в контроллере:

public ActionResult Something() 
{ 
//**Your dictionary: 
_imgDict = new Dictionary<string, string>(); 
_imgDict.Add("Image1", "../../Images/wi0096-48.gif"); 
_imgDict.Add("Image2", "../../Images/down.png"); 
_imgDict.Add("Image3", "../../Images/wi0054-48.gif"); 

TestView model = new TestView 
{ 
dictionary = _imgDict, 
}; 

return View(model 
} 

В представлении написать это:

@using (Html.BeginForm()) 
      {              
       foreach (var m in Model.dictionary) 
       { 

       <ul><li> 

         <img src="@m.Value" alt="@m.Key"/> 
        </li> 
       </ul> 
       } 

      } 
+0

А что, если Я хочу проверить, поддерживает ли словарь имеет определенную ценность? Как будет выглядеть этот синтаксис? – bangbang

Смежные вопросы