简体   繁体   中英

How to send value from controller to view in asp.net mvc 3?

I have to post image src attribute to view.So i have tried in the following way

Razor View:

@using (Html.BeginForm("MapIcon", "test", FormMethod.Get))
{
    <div class="selected" id="selectable_images">
        <table>
            <tr>
                <td>
                    <img src="../../Images/wi0096-48.gif" alt="Image1" class="conversation_img" />
                </td>
                <td>
                    <img src="../../Images/down.png" alt="image2" />
                </td>
                <td>
                    <img src="../../Images/wi0054-48.gif" alt="Image3" />
                </td>
                <td>
                    <img src="../../Images/Photo-icon.png" alt="image4" />
                </td>
            </tr>
            <tr>
                <td>
                    <img src="../../Images/wi0062-48.gif" alt="image5" />
                </td>
                <td>
                    <img src="../../Images/wi0064-48.gif" alt="image6" />
                </td>
                <td>
                    <img src="../../Images/wi0126-48.gif" alt="image7" />
                </td>
                <td>
                    <img src="../../Images/wi0126-48.gif" alt="image8" />
                </td>
            </tr>
            <tr>
                <td>
                    <img src="../../Images/wi0063-64.gif" alt="image9" />
                </td>
                <td>
                    <img src="../../Images/wi0064-48.gif" alt="image10" />
                </td>
                <td>
                    <img src="../../Images/wi0009-48.gif" alt="image11" />
                </td>
                <td>
                </td>
            </tr>
            <tr>
                <td>
                    <img src="../../Images/wi0126-48.gif" alt="iamg12" />
                </td>
                <td>
                    <img src="../../Images/wi0124-48.gif" alt="image13" />
                </td>
                <td>
                    <img src="../../Images/wi0062-48.gif" alt="image14" />
                </td>
                <td>
                </td>
            </tr>
        </table>
    </div>
}
@using (Html.BeginForm("MapIcon", "test", FormMethod.Post, new { id = "postform" }))
{

    <input id="image2" type="hidden" name="image" value="../../Images/down.png">
    <input id="Image3" type="hidden" name="image" value="../../Images/wi0054-48.gif">
    <input id="image4" type="hidden" name="image" value="../../Images/Photo-icon.png">

    <input type="submit" value="Match" />

    foreach (var m in (List<string>) ViewData["list"]) //I am getting Null value here 
    {
        <ul>
            <li>
                <img src="@m"  alt=""/>
            </li>
        </ul>
    }

}

Controller:

[HttpPost]
public ActionResult MapIcon(IEnumerable<string> image)
{
    List<string> urls = new List<string>();
    string val = "";
    foreach (var item in image)
    {
        val = item;
        urls.Add(val);
        //ViewBag.list = val;

        ViewData["list"] = urls; ;

    }
    return View();
}

My main problem is that i have to show those images which are selected. I have tried but not succedded. The value of img tag are obtained in controller. But how to send these values again back to view?

Have you tried passing the data in your view with a model?

[HttpPost]
public ActionResult MapIcon(IEnumerable<string> image)
{
    return View(image);
}

With in your view:

@model IEnumerable<string>

using (Html.BeginForm())
{
    foreach (var m in Model)
    {
        <ul>
            <li>
                <img src="@m"  alt=""/>
            </li>
        </ul>
    }

}
[HttpPost]
public ActionResult MapIcon(IEnumerable<string> image)
{
    List<string> urls = new List<string>();
    string val = "";
    foreach (var item in image)
    {
        val = item;
        urls.Add(val);
        //ViewBag.list = val;

        //ViewData["list"] = urls; ;

    }
        return View(urls);
}

On View

@foreach(var item in Model)
{
 <p> @item.url</p>   
}

用户$ .ajax和jquery以及单击的img上的onclick事件。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM