如何检索在数据库模型 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" .搜索继续......
我有一个从数据库查询结果创建的 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" .搜索继续......