我有一个ActionLink:
@Html.ActionLink("Edit","Edit","Item",new{Id=ItemId),null}
页面顶部有一个表单,当用户点击此链接时以及“编辑”操作调用之前,我需要保存该表单。
当用户点击链接时,实现此目的可能如下所示:
Save MasterForm
Carry on through to "Edit" Action on "Item" controller with "Id" parameter.
我的直觉告诉我,我可能正在寻找一些JS ???不确定。
非常感谢任何帮助。
答案 0 :(得分:2)
这样做的方法是:
window.location
在表单提交时显示某种微调器或弹出窗口可能是个好主意,这样用户就会知道发生了什么。
对于第1步,您需要选择<a>
代码,因此我建议添加一个类:
@Html.ActionLink("Edit","Edit","Item",new{Id=ItemId),new{@class="edit-link"}}
然后添加一些Javascript来拦截点击:
$(document).on("click", ".edit-link", function(e) {
// stop the browser from following the link
e.preventDefault();
var linkUrl = $(this).attr("href");
// submit the form via an Ajax post (assuming the form has "id=MasterForm")
var form = $("#MasterForm");
$.post(form.attr("action"), form.serialize(), function() {
// when complete, navigate to the original link
window.location = linkUrl;
});
});
答案 1 :(得分:1)
试试这个
@Html.ActionLink("Edit","Edit","Item",new{Id=ItemId),new {@id='btn-link'}}
在JS中
$(document).ready(function(){
$('#btn-link').click(function(e){
saveMasterFormDetails();
});
});
function saveMasterFormDetails(){
var masterForm=$('#masterForm');
$.post(url,masterForm.serialize(), function(data){
});
}