首页 > 解决方案 > 在剃刀视图中创建链接按钮,该按钮将激活将所选模型作为参数传递的控制器

问题描述

我有一个像下面这样的剃刀视图:

@model WebCoreFly.Models.ViewModels.SearchFlightInfoCollList

@foreach (var fcoll in Model)
{
<div class="row">
    <div class="col-md-4">
        <p>From @fcoll.depFlight.Location , @fcoll.depFlight.Country (@fcoll.depFlight.Airport) Leaves at: @fcoll.depFlight.Time</p>
        <p>To @fcoll.depFlight.ArriveLoc , @fcoll.depFlight.ArriveCountry (@fcoll.depFlight.ArriveAirport) arrives at: @fcoll.depFlight.ArriveTime</p>
    </div>
    <div class="col-md-2">
        <p>
            Tarif: @fcoll.depFlight.Tarif 
        </p>
        <a asp-action="BookingForm">Choose <a>
    </div>
</div>
}

它基本上是一个输出我的数据集合的列表。现在对于每个项目,我需要一个链接或一个按钮来启动一个控制器(我称之为 BookingForm 并将用户选择的项目的数据传递给它。我怎样才能实现这一点?在 html 中我知道我会做什么我会创建一个链接并通过 get 传递一些信息,但是如何在 mvc 上下文中实现它?

标签: c#htmlasp.netasp.net-mvcrazor

解决方案


使用@Html.ActionLink

@Html.ActionLink("Your link text", "ActionName", "ControllerName", fcoll)

您的 fcoll 对象将在结果 URL 中转换为查询字符串。

或者传递单个属性:

@Html.ActionLink("Your link text", "ActionName", "ControllerName", new { fcoll.Property1, fcoll.Property2 })

推荐阅读