我创建了一个 ASP.NET MVC 2.0 应用程序。
我有一个带有“报告”列表的下拉框。在下拉菜单旁边,我有两个 ActionLink。一个写着“添加新报告”另一个说“编辑报告”.
The “添加新报告” 链接非常简单……它在我的控制器中调用 ViewResult 并返回new View()
。伟大的!这没问题!
The “编辑报告” 链接有点棘手,因为我希望将下拉列表中当前所选项目的所选 ID 传递给 ActionLink。
我发现一篇文章向我展示了如何 AJAXify 我的 ActionLink,但我做错了......
以下是“编辑”链接视图中的 ActionLink:
<%=Html.ActionLink("Edit report", "EditReport", "Report", null, new { id = "edit" })%>
这是处理“click”的 jQuery click 事件
$("#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;
});
这是控制器中的方法:
public ViewResult EditReport(int reportId)
{
return View("EditReport");
}
当在控制器的方法中放置断点时,它会被击中并且参数“reportId”已正确传递...但其余代码(return View() 部分)似乎不起作用,因为在 jQuery 单击事件中,我有一个“return false”。
当删除点击事件中的“return false”时,断点不再被命中。因此,我无法进入我的“EditReport”视图......
我在这里缺少/不理解什么?
另外……有没有更好/更好/更干净的方法来完成我的任务而无需使用 AJAX 调用?