如何检索在数据库模型 table 中创建的 ActionLink 的 'Linktext' 值?

How to retrieve the 'Linktext' value of an ActionLink created in a DB Model table?

我有一个从数据库查询结果创建的 MVC table。我遇到的问题是我试图从第一列 (device/circuit) 中创建 links 结果,这些结果将传递给 .aspx 页面以显示电路的负载历史记录被点击。我有 link 创建并传递到 .aspx 页面,但显示的数据始终是查询返回的最后一个 item.CUIRCUIT。有什么方法可以从单击的 link 中检索 LinkText 吗?到目前为止我看到的所有内容都使用静态 ActionLink,而不是可变的。

如上所述,我尝试使用变量 item.CIRCUIT LinkText 值,并将全局变量设置为此值以在 .aspx 页面上预填充下拉列表,但当然我只收到返回列表中的最后一个巡回赛;不是单击的 link 的值。

MVC索引代码

@model IEnumerable<Mvc.Models.Circuits_View>
@using Mvc.Variables;

…

<div style="max-height:335px;overflow:auto;">
    <table class="table table-bordered table-condensed table-striped">

        @foreach (var item in Model)
        {
        <tr>
            <td>
                @*@Html.DisplayFor(modelItem => item.CIRCUIT)*@
                @Html.ActionLink(item.CIRCUIT, null, "AmpLoadDaily", Globals.ddl_cktval1 = item.CIRCUIT, null)
            </td>
            <td align="right">
                @Html.DisplayFor(modelItem => item.IA)
            </td>
            <td align="right">
                @Html.DisplayFor(modelItem => item.IB)
            </td>
            <td align="right">
                @Html.DisplayFor(modelItem => item.IC)
            </td>
            <td align="right">
                @Html.DisplayFor(modelItem => item.IG)
            </td>
            <td align="right">
                @Html.DisplayFor(modelItem => item.KW)
            </td>
            <td align="right">
                @Html.DisplayFor(modelItem => item.KVA)
            </td>
            <td align="right">
                @Html.DisplayFor(modelItem => item.KVAR)
            </td>
            <td align="right">
                @Html.DisplayFor(modelItem => item.PF)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.STATUS)
            </td>
        </tr>
        }
    </table>
</div>

ASPX 下拉列表

    <asp:DropDownList runat="server" ID="ddlDevice1"  DataSourceID ="SqlDataSource_ddlDevice1" DataTextField="CIRCUIT" DataValueField="CIRCUIT" 
                      AppendDataBoundItems="true" AutoPostBack="true" Width="95" OnSelectedIndexChanged="ddlDevice1_SelectedIndexChanged">
        <asp:ListItem Text="-Device1-" Value=" " Selected="True">
        </asp:ListItem>
    </asp:DropDownList>

代码隐藏

            if (Globals.ddl_cktval1 != "")
            {
                ddlDevice1.SelectedValue = Globals.ddl_cktval1;
                Globals.ddl_cktval1 = "";
            }

我希望该值是单击的 link 的名称(即 Device1 或 Device23),而不总是 DeviceLast(当然,除非是单击的 link)。

看来我毕竟能够使用匿名类型来收集所需特定 ActionLink 的 item.CIRCUIT 信息。

        @foreach (var item in Model)
        {
        <tr>
            <td>
                @*@Html.DisplayFor(modelItem => item.CIRCUIT)*@
                @Html.ActionLink(item.CIRCUIT, null, "AmpLoadDaily", new { device = item.CIRCUIT }, null)
            </td>

我的问题一定是因为在后面的代码中 Request.QueryString 正确。

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ddlDevice1.SelectedValue = Request.QueryString["device"];

我现在可以使用 MVC 页面提供的值预填充 ASPX 页面上的 DropDownList。在我将 DropDownList 的 SelectedValue 设置为传递的新值之后,我只需要弄清楚如何让 SqlDataSource(使用所选值作为参数)在页面加载期间重新运行="server" .搜索继续......