gpt4 book ai didi

asp.net-mvc - ActionLink jQuery 参数

转载 作者:行者123 更新时间:2023-12-03 18:20:16 26 4
gpt4 key购买 nike

我创建了一个 ASP.NET MVC 2.0 应用程序。

我有一个带有“报告”列表的下拉框。在下拉菜单旁边,我有两个 ActionLink。一个说“添加新报告”,另一个说“编辑报告”。

“添加新报告”链接非常简单……它在我的 Controller 中调用一个 ViewResult 并返回一个 new View() .伟大的!这没问题!

“编辑报告”链接有点棘手,因为我希望将下拉列表中当前选择的项目的选定 ID 传递给 ActionLink。

我找到了一篇文章,向我展示了如何对我的 ActionLink 进行 AJAX 化,但我做错了……

这是 View 中“编辑”链接的 ActionLink:

<%=Html.ActionLink("Edit report", "EditReport", "Report", null, new { id = "edit" })%>

这是处理“单击”的 jQuery 单击事件
$("#edit").click(function() {
$.ajax({
url: '<%=Url.Action("EditReport")%>',
type: 'POST',
data: { reportId: $('select[name="ReportId"] option:selected').val() },
success: function(result) {
//alert("succes");
},
error: function() {
alert("error");
}
});
return false;
});

这是 Controller 中的方法:
public ViewResult EditReport(int reportId)
{
return View("EditReport");
}

当在 Controller 的方法中放置断点时,它被命中并且参数“reportId”被正确传递……但是其余的代码(返回 View() 部分)似乎不起作用,因为在 jQuery 单击事件中,我有一个“返回假”。

删除 click 事件中的“return false”时,断点不再被击中。因此,我无法进入我的“EditReport” View ……

我在这里缺少/不理解什么?

另外……有没有更好/更好/更干净的方法来完成我的任务而不必使用 AJAX 调用?

最佳答案

好的,因为我现在可以在这里发布答案(如果有人感兴趣):

首先,我需要修改 ActionLink 并放入 预定义 单击链接后将替换的参数值。

<%=Html.ActionLink("Edit report", "EditReport", "Report", new { reportId="xxx"}, new { id = "edit" })%>

二、修改jQuery点击事件:
$("#edit").click(function() {
//Get the id of the selected item in dropdown
var id = $('select[name="ReportId"] option:selected').val();

//Replace the predifined QueryString param "xxx" with the "id"
this.href = this.href.replace("xxx", id);
});

Controller 的方法没有任何变化……它保持不变:
public ViewResult EditReport(int reportId)
{
//Fix me...
return View("EditReport");
}

关于asp.net-mvc - ActionLink jQuery 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7840291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com