Asp.net MVC 不会采用 Razor 参数
本文关键字:Razor 参数 net MVC Asp | 更新日期: 2023-09-27 17:55:25
我正在开发一个学校项目,到目前为止它已经做得很好,但问题终于来了。
我的家庭控制器中有此方法:
[HttpPost]
public ActionResult GetSeatsInShow(int showId)
{
...
return View(realSeatList);
}
在我看来,我使用 razor 将参数解析为控制器,控制器应该以如下地址返回结果:
http://localhost:1499/Home/GetSeatsInShow/236
如果我在以下 URL 上名为"显示"的另一个控制器方法上执行此操作,这就是它的作用:
http://localhost:1499/Home/Shows/1
但是在 GetSeatsInShow 方法上,我需要将 ?showId= 像片段放在下面:
http://localhost:1499/Home/GetSeatsInShow/?showId=236
我的剃须刀动作链接看起来像这样:
@Html.ActionLink("Vælg", "GetSeatsInShow", new { id = item.Id })
似乎在一段时间后找不到问题,Show 方法工作正常,结果与不起作用的方法相同。
你有几个选择。
您当前将参数作为 id 传递,而不是 showId,而您的控制器需要一个名为 showId 的参数。 因此,通过更新匿名类型,可以传递正确的参数名称。
@Html.ActionLink("Vælg", "GetSeatsInShow", new { showId = item.Id })
或者,您可以简单地在查询字符串中传递"id"并允许默认 MVC 绑定工作,如果您更新控制器,这很神奇:
@Html.ActionLink("Vælg", "GetSeatsInShow", new { id = item.Id })
[HttpPost]
public ActionResult GetSeatsInShow(int id)
{
...
return View(realSeatList);
}
你可以
试试这个
@Html.ActionLink("Vælg", "GetSeatsInShow", new { id = item.Id, showId = item.Id })
您正在GetSeatsInShow
中输入showId
,并且在您传递的剃刀中输入id
[HttpPost]
public ActionResult GetSeatsInShow(int id)
{
...
return View(realSeatList);
}