ASP.NET MVC3-运行的每个选项卡中的控制器

ASP.NET MVC3 - Controller in each Tab running

本文关键字:选项 控制器 NET MVC3- 运行 ASP      更新时间:2023-09-26

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

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

<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);
}

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

扩展到@me2323所说的内容。

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

jQuery

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

其他选项卡视图也是如此。

覆盖默认验证并为每个选项卡编写自定义验证。