我正在使用C#,MVC。MVC C#,部分视图,jquery load()在.load()被调用后无法正常工作
我遇到了部分视图和jquery加载正常工作的问题。
当用户点击超链接叫包,我拨打以下:
public ActionResult KitsEdit(string id)
{
int idnbr = Convert.ToInt32(id);
var Progs = db2.usp_KitInfo(idnbr)
.OrderBy(x => x.TDate).ToList();
return PartialView(Progs);
}
它加载页面罚款PartialView。
视图有行,并且每行都有一个编辑超链接。 当用户点击编辑超链接时,我会显示一个对话框,用户可以在其中修改某些信息出现在每一行并点击提交。这是第一次正常工作。
在提交时,我叫我做一些验证,然后调用:
$("#stlist").load('@Url.Action("KitsEdit", "Spr")' + '?id=' + '@Model.id');
,因为我需要重新加载局部视图页面上,使用户可以看到更新的信息。
页面的负载在表面上正常工作。但是,当我在做了.load之后第二次单击编辑超链接时,发生的情况是,当对话框显示一些以前工作的功能根本无法工作时。例如,如果我单击该复选框不起作用,则该值无法正确传递回控制器操作。此外,对于提交,我点击了一些代码,但那些甚至不工作。它去diectly控制器动作并绕过所有的代码在
$("#submit").click(function().
注意,这仅仅发生后负荷()被调用。
问:除了将加载页面上的PartialView的.load()之外,还有什么。如果没有,我怎么才能使它与.load()正常工作。
下面是长什么样的点击提交,如:提前
$("#submit").click(function() {
// following .on code won't execute code inside of function so have it commented
// $("#submit").on("click", function() {
var inactivedate = $("#InactiveDate").val();
var inactivecheck = $('#Inactive').is(':checked');
var inactivereason = $('#InactiveReason option:selected').text();
if ((!inactivedate || !$.trim(inactivedate)) && $('#Inactive_cb').attr('checked') == true) {
alert('Inactive Date must be entered.');
return false;
}
if ($('#Inactive_cb').attr('checked') == true && inactivereason == '<Choose>') {
alert('Inactive Reason must be selected.');
return false;
}
var url = '@Url.Action("EditTrain", "Spr")';
$.ajax({
type: "POST",
url: url,
async: false,
data: $('#theForm').serialize()
});
$("#stlist").load('@Url.Action("kitsEdit", "Spr")' + '?id=' + '@Model.spkrid');
parent.$.fn.colorbox.close();
return false;
});
});
感谢。
Shyju - 感谢您的回复。我替换$(“#submit”)。click(function(){with $(document).on(“click”,“#submit”,function(){但在$(document).on(“点击“,”#提交“,函数(){似乎得到执行,代码直接跳过控制器操作绕过点击代码 – 2012-07-11 18:09:05
@NatePet:如果你想防止默认提交行为,请使用preventDefault方法。回答 – Shyju 2012-07-11 18:11:41
谢谢您的答复。我e.preventDefault(),但仍然没有运气尝试过。里面的代码$(文件)。对的(“点击”,“#提交”功能(E)是不是被执行 – 2012-07-11 18:24:21