2012-11-04 57 views
2

我想在我的剃鬚刀網頁(而不是mvc) 使用兩個來自我的問題是與多個表格 我怎麼說我的項目,哪個表單按鈕被點擊,另一個問題是驗證 ,因爲在web表單項目我使用驗證組來分開驗證,但在這裏 我不知道如何處理它在客戶端驗證和服務器端驗證 這裏是我的代碼 :asp.net剃鬚刀網頁驗證和使用多種形式

@{ 
Page.Title = ""; 
Layout = "~/_layout.cshtml"; 

    Validation.Add("txt1", Validator.Required("can not leave empty")); 
    Validation.Add("txt2", Validator.Required("can not leave empty")); 


if (IsPost) 
{ 

    if (!Validation.IsValid()) 
    { 
    Validation.AddFormError("there are errors"); 
    } 


} 


} 
    <style> 
    .validation-summary-errors { 
      border: 2px solid #990099; 
      color: red; 
     } 

     .field-validation-error { 
      color: Red; 
     } 

     .input-validation-error { 
      color: #990099; 
      background-color: #ff80ff; 
      border-top: 2px solid #990099; 
      border-left: 2px solid #990099; 
     } 
    </style> 
    <div> 
    <script src="~/jquery-1.7.2.min.js"></script> 
    <script src="~/jquery.validate.min.js"></script> 
    <script src="~/jquery.validate.unobtrusive.min.js"></script> 
    </div> 


<p style="height:10px;"></p> 

<div> 
<form name="f1" action="/" method="post"> 
<div> 
    <input name="txt1" type="text" 
     class="@Validation.ClassFor("txt1")" 
     /> 

    @Html.ValidationMessage("txt1") 
</div> 
<div> 
    <input type="submit" name="s1" value="Send 1" /> 
</div> 
</form> 

</div> 
<br /> 

<form name="f2" action="/" method="post"> 
<div> 
    <input name="txt2" type="text" 
     class="@Validation.ClassFor("txt2")" 
     /> 

    @Html.ValidationMessage("txt2") 
</div> 
<div> 
    <input type="submit" name="s2" value="Send 2" /> 
</div> 

</form> 

回答

2

查看此鏈接以處理多個表單req美國版http://forums.asp.net/t/1678062.aspx/1

您可以在每個子部分處理驗證。希望有幫助

+0

感謝羅伊斯頓,多數民衆贊成在幫助我,但驗證問題仍然存在, 我如何處理每種形式的驗證? –

+0

你能解釋更多嗎? –

1

您可以通過檢查以查看哪個提交按鈕被單擊來確定提交哪個表單。其名稱和價值將在Request.Form集合中。如果您的示例代碼中的第一個表單已提交,則Request["s1"]將具有值「發送1」。 Request["s2"].IsEmpty()將是true

解決驗證問題的最簡單方法是爲兩個文本框使用相同的名稱(「txt1」)。否則,您將不得不離開Validation助手並根據提交的表單來編寫自己的條件驗證例程(客戶端和服務器)。