asp net core使用href激活控制器和动作?

时间:2018-05-31 11:58:55

标签: asp.net-mvc href

我有一个带有索引操作的控制器:

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

这显然是错误的。

0 个答案:

没有答案