ASP.NET MVC3 - 每个Tab中运行的Controller

时间:2012-03-05 18:19:51

标签: javascript asp.net asp.net-mvc-3

这就是事情。我正在使用ASP.NET MVC3来构建应用程序,并使用Jquery.ui.Tabs来显示某些操作。基本上我想在一个标签中显示需求控制器,按提交并转到另一个带有DocQuality控制器的选项卡。当我试图从Controller Requirement提交信息时,问题就出现了,两个验证代码都在运行,显然,这不是我想要的。有任何想法或更好的方法来实现这个吗?

先谢谢了。

在我的布局中,我有以下内容:

<div id="tabs">
     <ul>
         <li><a href="#tabs-1">Requirement </a></li>
         <li><a href="#tabs-2">DocQuality</a></li>
     </ul>
     <div id="tabs-1">
          { @Html.RenderAction("Create", "Requirement"); }
     </div>
     <div id="tabs-2">
          { @Html.RenderAction("Create", "DocQuality"); }
     </div>
</div>
@RenderBody() 

查看 DocQuality

@model MvcAppRequirement.Models.DocQuality
@* ... *@
@using (Html.BeginForm()) {
  @Html.ValidationSummary(true)
     @* Some parameters *@
}

控制器 DocQuality

[HttpPost]
public PartialViewResult Create(DocQuality docpaseqal)
{
    if (ModelState.IsValid)
    {
        db.DocsPaseQal.Add(docpaseqal);
        db.SaveChanges();  
    }
    @* ... Some fields ... *@
    return PartialView(docpaseqal);
}

查看要求

@model MvcAppRequirement.Models.Requirement
@* ... *@
@using (Html.BeginForm()) {
  @Html.ValidationSummary(true)
     @* Some parameters *@
}

控制器要求

[HttpPost]
public PartialViewResult Create(Requirement req)
{
    if (ModelState.IsValid)
    {
        db.Requirement.Add(req);
        db.SaveChanges();  
    }
    @* ... Some fields ... *@
    return PartialView(req);
}

2 个答案:

答案 0 :(得分:1)

使用MVC的传统方法无法实现对表单的部分验证。您需要的解决方案是禁用默认验证处理程序,并在您感兴趣的表单输入上手动调用.validate()以及何时验证它们。

答案 1 :(得分:0)

扩展到@ me2323所说的内容。

 @model MvcAppRequirement.Models.Requirement
@* ... *@
@using (Html.BeginForm("","",new{id = "DocQualityForm"})) {
  @Html.ValidationSummary(true)
     @* Some parameters *@
}

的jQuery

$("buttom").submit(function(){
$("#DocQualityForm").validate();
});

其他标签视图相同。

覆盖默认验证并为每个标签编写自定义验证。