【发布时间】:2010-07-13 17:55:11
【问题描述】:
我在 ASP.NET MVC 2 Web 应用程序中使用 jQuery UI 选项卡。应用程序的一部分要求我在离开选项卡时进行错误检查。我正在通过包含选项卡的 aspx 文件中的此脚本来执行此操作。
<script type="text/javascript">
$(function () {
$("#tabs").tabs({
cache: true,
select: function (event, ui) {
var $tabs = $('#tabs').tabs();
switch ($tabs.tabs('option', 'selected')) {
case 0:
$.post("User/Personal", $("#PersonalForm").serialize(), function (data, success) {
if (success) {
$("#PersonalForm").html(data);
}
});
break;
case 1:
$.post("User/Account", $("#AccountForm").serialize(), function (data, success) {
if (success) {
$("#AccountForm").html(data);
}
});
break;
default:
break;
}
return true;
},
ajaxOptions: {
error: function (xhr, status, index, anchor) {
$(anchor.hash).html("Couldn't load this tab. We will fix this as soon as possible.");
}
}
});
});
</script>
还有其他 switch 语句(为简洁起见已删除)。基本上,此代码允许通过数据注释在选项卡上进行 MVC 验证 - 工作得非常好。无论如何,我想知道是否可以根据文档中的任何选项卡“生成”此代码。 (如果不是,我基本上必须在 switch 语句中手动编写 case 语句,这似乎有点浪费。)
另外,作为旁注,我对每个选项卡使用 ASP 控件来保存各种数据(这也是各个表单所在的位置)。这可能会对解决方案产生影响。
【问题讨论】:
-
所有标签的内容是否属于同一类型,例如包含一个表单 (
PersonalForm,AccountForm) 等,并且该表单的action指向应该将$.post()发送到哪里进行验证? -
@Simen - 每个选项卡都包含一个表单,并且选项卡的集合代表一个完整的用户。 (您在上一页中选择了一个用户,然后您会看到一系列允许您输入用户的选项卡。)当我发送单个表单时,它对应于控制器类中的一个方法(选项卡中的每个表单都有一个方法)。这能说明问题吗?
-
有点 - 看看我的回答,看看它是否能解决你的问题 :)
标签: jquery jquery-ui asp.net-mvc-2