动态显示点击的图像MVC

时间:2016-08-01 02:40:52

标签: asp.net-mvc-4 razorengine

我是MVC的新手,我想问一个相对简单的问题!我有一个索引页面,其中包含2个链接图片。他们都去另一个页面,名为" Page",当这个页面打开时,我想让它渲染我刚刚点击的图像。以下是索引页面的一个障碍:

<div class="col-md-4">
<h2>Column 1</h2>
    <a href="@Url.Action("NewPage", "Page")">
        <img src="~/Images/ball.jpg" />
    </a>
</div>
<div class="col-md-4">
    <h2>Column 2</h2>
    <a href="@Url.Action("NewPage", "Page")">
        <img src="~/Images/ball1.jpg" />
    </a>
</div>`

因此,如果我点击&#34; ball.jpg&#34;,我只希望在新页面中进行渲染,而对于&#34; ball1.jpg&#34;则相同。 控制器&#34; NewPage&#34;:

namespace MVC.Mine.Controllers
{
    public class PageController : Controller
    {
        // GET: Page
        public ActionResult NewPage()
        {
            return View();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以更新链接的href属性值,以将唯一键作为查询字符串参数值传递。

例如,使用当前代码,可以传递图像文件名。

<a href="@Url.Action("NewPage", "Page",new {id="ball"})">
    <img src="~/Images/ball.jpg" />
</a>
<a href="@Url.Action("NewPage", "Page",new {id="ball1"})">
    <img src="~/Images/ball1.jpg" />
</a>

现在确保您的NewPage操作方法在名为id

的参数中接受此字符串值
public ActionResult NewPage(string id)
{
  var fileName=id+".jpg";
  return View(fileName);
}

由于您将字符串值(文件名)传递给视图,因此请确保将其强类型化为字符串类型。

@model string
<h2>Going to display the image clicked</h2>
<img src="~/Images/@Model" />

如果要显示数据库表中记录的图像,则应传递唯一ID(主键),从中可以在NewPage操作方法中轻松检索图像信息。