href链接没有传递参数值

时间:2016-11-18 18:09:19

标签: c# asp.net-mvc

我的视图中有一段代码,会在点击它时显示图片和网址。该URL指向站点上的页面,并将其定向到该操作方法。我将参数作为URL的一部分,但在Action方法中,参数显示为null.Hence我被重定向到适当的页面,但是我在action方法中没有任何功能。

这是我的代码。

查看:

<a class="lnkImage" href="@item.ImageURL" target="_blank"><img id="PrivateimgPreview" src="@item.ActualImage"/></a>

我从数据库获取的@ item.Image网址的值为http://localhost/TestProject/Home/DemoPage/b9f074fc-f86c-4866-a7b3-33e43025293f

我在家庭控制器中的动作方法是

public ActionResult DemoPage(string blockId)
{
    //Some code here
    return(View);
}

这是我在Route.config中的映射路径

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );  

我错过了什么?

1 个答案:

答案 0 :(得分:1)

我认为您需要将'blockId'更改为'id'或添加以下路线:

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{blockId}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );  

我认为在签名中重命名参数更有意义,而不是为此操作方法创建几乎相同的路径。