实际上我有一个包含多列的表,第一列(ID)是超链接。因此,每当用户单击超链接时,该值应传递给控制器并在新窗口中打开相应的页面。
我的脚本在新窗口中打开页面
<script>
function openInNewWindowWithSettings()
{
window.open('@Url.Content("~/ConfirmVisit/ClaimDetails")', target = '_blank', width = '1000px', height = '800px');
}
表格数据
<tr>
<td><a href='javascript:openInNewWindowWithSettings();'>@Html.DisplayFor(modelItem => item.ClaimID)</a></td>
</tr>
我尝试了这种方法,但是值没有传递给控制器并打开一个带有空页面的新窗口。
那么如何更改我的代码以获取id到控制器的值? 在此先感谢!!!
答案 0 :(得分:0)
使用<a>
在您的循环中生成@Url.Action()
个代码,为每个Claim
生成正确的网址,并将其添加为data-*
属性
@foreach(var item in ....)
{
<td>
<a href="#" class="claim-link" data-url="@Url.Action("ClaimDetails", "ConfirmVisit", new { id = item.ClaimID })">@item.ClaimID</a>
</td>
}
然后处理他们的.click()
链接事件并提取网址
$('.claim-link').click(function() {
var url = $(this).data('url');
var attributes = "width=1000,height=800";
window.open(url, "yourWindowName", attributes);
}
另请参阅documentation,了解要传递给window.open()
函数的3个参数