user2663526
user2663526

Reputation: 155

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?

Upvotes: 1

Views: 928

Answers (3)

Suraj Singh
Suraj Singh

Reputation: 4059

[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>   
}

Upvotes: 1

Sam
Sam

Reputation: 1366

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>
    }

}

Upvotes: 1

Sebastian Wąsik
Sebastian Wąsik

Reputation: 65

User $.ajax and jquery and onclick event on clicked img.

Upvotes: -1

Related Questions