我有一个带有索引操作的控制器:
public class HomeController : Controller
{
private FlyRepository rep;
private UserSession uSession;
public HomeController(FlyRepository theRep, UserSession theus)
{ rep = theRep;
uSession = theus;
}
[HttpGet]
public ViewResult Index(int City=-1)
{
ViewBag.Title = "Home";
IQueryable<Locations> locs = rep.GetLocations();
ViewBag.Locations = locs.ToList();
var aFormUser = (uSession.SearchInput == null) ? new FrmUser() : uSession.SearchInput;
if (City != -1)
{
long carouselLocID = rep.GetCarouselLoc(City);
if (carouselLocID != -1) aFormUser.FlightDestID = carouselLocID;
}
return View("Index", aFormUser);
}
在startup.cs中设置路由:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
在我的Views / Home /文件夹中,我有与该控制器绑定的索引页面视图。
现在在我的Index.cshtml中,我想在调用控制器和操作的同一页面上添加一个href。 例如
<a href=""> Roma </a>
要在Href中包含哪些内容以激活Home控制器和索引操作? 我试过了:
<a href="Home/Index/?City=0">Roma</a>
<a href="Home/Index/?City=1">Firenze</a>
但这只是第一次有效。第一次点击Roma会产生网址:
http://localhost:60335/Home/Index/?City=0
第二次点击Firenze会导致错误的网址:
http://localhost:60335/Home/Index/Home/Index/?City=1
这显然是错误的。