Asp.net mvc ASP.NET/MVC HTML ActionLink-如何将返回的Javascript值传递给ActionLink routeValue参数?
(目标框架为4.0) 我正在实现一个功能来删除一个简单表中的多个记录。为了做到这一点,我使用带有Javascript函数的简单HTML复选框来循环遍历每一个复选框,以找到所选的复选框。Javascript返回一个int值数组,该数组表示要删除的记录ID 我使用ActionLink调用所有这些,并最终返回控制器文件中的Delete函数(使用int数组作为parm),以实际将删除提交到数据库 我的问题是,我不知道如何将从Javascript返回的数组放入ActionLink,并将其传递给控制器 以下是我正在使用的代码:Asp.net mvc ASP.NET/MVC HTML ActionLink-如何将返回的Javascript值传递给ActionLink routeValue参数?,asp.net-mvc,Asp.net Mvc,(目标框架为4.0) 我正在实现一个功能来删除一个简单表中的多个记录。为了做到这一点,我使用带有Javascript函数的简单HTML复选框来循环遍历每一个复选框,以找到所选的复选框。Javascript返回一个int值数组,该数组表示要删除的记录ID 我使用ActionLink调用所有这些,并最终返回控制器文件中的Delete函数(使用int数组作为parm),以实际将删除提交到数据库 我的问题是,我不知道如何将从Javascript返回的数组放入ActionLink,并将其传递给控制器 以下
<p>
@Html.ActionLink("Add New", "Add") | @Html.ActionLink("Delete Selected", "Delete", new { id = "???" }, new { onclick = "return getProjectsToDelete()" })
</p>
<script type="text/javascript">
function getProjectsToDelete() {
var answer = confirm("Are you sure you wish to delete the selected projects?");
if (answer) {
var listToDelete = new Array();
var arrayCount = 0;
for (i = 0; i < document.projectList.deleteProject.length; i++) {
if (document.projectList.deleteProject[i].checked) {
listToDelete[arrayCount] = document.projectList.deleteProject[i].value;
arrayCount++;
}
}
return listToDelete;
}
}
</script>
@ActionLink(“添加新”、“添加”)|@Html.ActionLink(“删除选定项”、“删除项”、“新建{id=“???””},新建{onclick=“return getProjectsToDelete()”})
函数getProjectsToDelete(){
var answer=confirm(“您确定要删除所选项目吗?”);
若有(答复){
var listToDelete=新数组();
var arrayCount=0;
对于(i=0;i
如果我理解正确,您想知道如何将ID集合推回控制器吗
通常,这将作为一个表单完成,并将表单发布到后端。我自己更喜欢通过AJAX来实现这一点,但那只是我自己
虽然您可以使用GET并将所有id填充到查询字符串中来实现这一点,但它是脏的
它看起来像/controller/action?id=7&id=8&id=9
NET中的模型绑定器将其转换为列表或int[]
我建议在Javascript中使用“.push”来管理ID数组。您还可以在数组中使用“.join”方法创建干净的查询字符串。我重新阅读了您的代码,发现您可能不了解onclick事件的工作原理。OnClick是一种客户端方法,用于在客户端执行脚本,以便在执行单击之前执行一些工作。如果您的事件返回“false”,则单击将中止,操作将不会发生。不能使用OnClick事件将任何类型的数据返回到后端控制器。您只能通过HTTP GET(URL查询字符串或通过AJAX)或HTTP POST(表单提交或AJAX)传回数据请记住,ActionLink仅根据您设置的路由生成带有URL的链接。