我想将以下asp.net代码迁移到MVC。但是,我的所有尝试都失败了。以下代码是用户单击时的按钮,它必须显示用户电费发票的表格。请记住,我是Web开发的新手。
<asp:LinkButton CommandArgument='<%#Eval("BIL_ISSU_Y") + ";" +Eval("BIL_ISSU_M")%>' ID="lnkInvDets" ForeColor="#3294C3" Font-Underline="false" runat="server"
OnClientClick='<%# String.Format("window.open(\"SubInvoiceDetails.aspx?IssuYM=\" + \"{0}\" + \"{1}&CityId=\"+ \"{2}&CusmId=\"+ \"{3}\", \"Test\", \"menubar=0,resizable=0,width=630,height=800,position=fixed,top= calc(50% - 25px),left= calc(50% - 50px),scrollbars=1\", \"\").moveTo(500,0);", Eval("BIL_ISSU_Y"),Eval("BIL_ISSU_M"),Eval("BIL_CITY"),Eval("BIL_NUM")) %>' CausesValidation="false" CommandName="InvoiceDetails">details</asp:LinkButton>
答案 0 :(得分:0)
要在asp.net核心应用程序中显示链接按钮,可以尝试使用<a>
标签。
根据您的代码,我想您正在使用Asp.net数据控件在网页中显示记录,并使用链接按钮显示详细信息。在Asp.net核心应用程序中,要在网页中显示记录,可以使用Strongly typed data将数据传递到视图,并在<table>
元素中显示数据,然后使用{{1} }标签以在表格中显示相关的链接按钮。有关更多详细信息,请参阅:Tutorial: Get started with EF Core in an ASP.NET MVC web app。
要通过<a>
标签传递多个参数,可以参考以下代码(使用字典传递多个参数):
<a>
控制器方法中的代码:
@model IEnumerable<MovieSamples.Models.Movie>
<table class="table">
<thead>
<tr>
... @*table headers*@
</tr>
</thead>
<tbody>
@foreach (var item in Model) {
<tr>
... @*other table columns*@
<td>
<a asp-action="Edit" asp-route-id="@item.Id">Edit</a> |
@*<a asp-action="Details" asp-route-id="@item.Id">Details</a> |*@
@{
//define a variable to add parameters
var parms = new Dictionary<string, string>
{
{ "id", item.Id.ToString() },
{ "releaseDate", item.ReleaseDate.ToString() },
{ "genre", item.Genre!=null? item.Genre.ToString():"Null"}
};
//generate the javascript script.
var popupwindow =string.Format("event.preventDefault(); window.open(\"/Movies/Details?id={0}&releaseData={1}&genre={2}\", \"Test\", \"menubar=0,resizable=0,width=630,height=800,position=fixed,top= calc(50% - 25px),left= calc(50% - 50px),scrollbars=1\", \"\").moveTo(500,0);", item.Id, item.ReleaseDate, item.Genre);
}
<a asp-action="Details" asp-all-route-data="parms" onclick="@popupwindow"
data-id="@item.Id" data-ReleaseData="@item.ReleaseDate" >Details</a>|
<a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
</td>
</tr>
}
</tbody>
</table>
有关在Asp.net核心中使用 public async Task<IActionResult> Details(int? id, string releaseDate, string genre)
{
标记的更多详细信息,请参阅:Anchor Tag Helper in ASP.NET Core