1

Image と一緒にキーを表示するために渡す必要があります。しかし、私の例では、画像しか表示できません。キーを含むテキストボックスで画像を表示するにはどうすればよいですか

コントローラ:

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();
        }
    }
}

かみそりビュー:

@using (Html.BeginForm())
{                                                      
    foreach (var m in (List<string>)ViewData["list"])
    { 
        <ul>
            <li>       
                <img src="@m"  alt=""/>
            </li>
        </ul>
    } 
}

試しましたが成功しませんでした。

4

1 に答える 1

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>
    }
}
于 2013-08-11T12:21:56.533 に答える