2012-03-05 74 views
3

這是事情。我使用ASP.NET MVC3構建應用程序,並使用Jquery.ui.Tabs來顯示一些操作。基本上我想在一個選項卡中顯示一個需求控制器,按提交併轉到另一個選項卡與DocQuality控制器。當我試圖從Controller Requirement提交信息時,問題就發生了,兩個驗證代碼都在運行,顯然,這不是我想要的。任何想法或更好的實現方式?ASP.NET MVC3 - 每個Tab中的控制器正在運行

謝謝先進。

在我佈局我有以下幾點:

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

回答

0

延伸到@ me2323所說的。

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

jQuery的

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

相同的其他選項卡視圖。

覆蓋默認驗證併爲每個選項卡編寫自定義驗證。

+0

它的工作原理。對出價延遲抱歉。 – 2012-04-12 15:56:25

1

你不能用MVC常規方法實現形式的部分驗證。您需要的解決方案是禁用默認驗證處理程序,並手動調用您感興趣的表單輸入上的.validate()以及何時驗證它們。

相關問題