我創建了一個ASP.NET MVC 2.0應用程序。ActionLink jQuery參數
我有一個包含「報告」列表的dropdownbox。在下拉列表旁邊,我有兩個ActionLink。一個說「添加新報告」,另一個說「編輯報告」。
「添加新報告」鏈接,非常簡單...它在我的控制器中調用ViewResult並返回new View()
。大!這工作沒問題!
「編輯報告」鏈接有點棘手,因爲我希望將當前在下拉列表中選擇的項目的選定ID傳遞給ActionLink。
我發現,我展示瞭如何AJAXify我的ActionLink的,但我做錯事的文章...
這裏是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;
});
這裏是控制器的方法:
public ViewResult EditReport(int reportId)
{
return View("EditReport");
}
當放置在控制器的方法中設置斷點,它被擊中和參數「reportId」是正確傳遞......但其餘代碼(返回查看()部分)似乎並不裏面的工作,因爲jQuery點擊事件,我有一個「返回false」。
當在click事件中刪除「返回false」時,斷點不再被命中。因此,我不能去我的「EditReport」視圖...
我在想什麼/不理解這裏?
另外...有沒有更好/更好/更清潔的方法來實現我的任務,而無需使用AJAX調用?
你嘗試過在你的行動來回報JSON或字符串而不是視圖? –
嗯......事情是我希望顯示一個不同的(「EditReport」)視圖,它將被強制輸入。該視圖將具有允許用戶編輯報告信息的形式。糾正我,如果我錯了,但是,返回json不會將我重定向到另一個視圖是否正確?也許我的整個方法是錯誤的。 – Vlince
您不必使用ajax將用戶重定向到其他視圖,我相信ajax的目的是更新頁面內容而無需重新加載整個頁面。 –