使用javascript将值传递给控制器

时间:2017-03-07 03:36:17

标签: javascript asp.net-mvc asp.net-mvc-4

实际上我有一个包含多列的表,第一列(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到控制器的值? 在此先感谢!!!

1 个答案:

答案 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个参数