1

1 つのフォームに 2 つのボタンがあります。最初のボタンはファイルのアップロードに使用され、2 番目のボタンは submit です。 検証が必要です。送信ボタンをクリックしたときに、時間検証を生成する必要があります。しかし、私のアプリケーションでは、アップロードボタンをクリックすると、時間の検証が生成されました。

意見:

<% using (Html.BeginForm("Create","Document", null, FormMethod.Post, new { enctype = "multipart/form-data" }))

<table>

 <tr>
                <td >
                  File Name:
                </td>
                <td >
                    <%: Html.EditorFor(model=>model.document.DOCUMENT_NAME) %>
                    <%: Html.ValidationMessageFor(model => model.document.DOCUMENT_NAME) %>
                </td>              
            </tr>
            <tr>
                <td>               
                    Select File:
                </td>
                <td>          
                    <input type="file" name="file" id="file" style="height: 24px" />
                    <input type="submit" name="submitButton" value="Upload" />
                </td>
<tr>
</table>

 <div>
            <input type="submit" name="submitButton" value="Create" />
</div

<%}%>

コントローラ:

    [Required]
    [Display(Name = "DOCUMENT NAME")]
    [ReadOnly(true)]
    public string DOCUMENT_NAME
    {
        get;
        set;
    }
4

2 に答える 2

0

フォーム上の任意のボタン (および 2 つある) は、検証をトリガーします。考えられる解決策の 1 つは、アップロード ボタンを何らかの要素に置き換えて、jquery 経由でアップロードすることです。

于 2012-09-12T07:00:36.360 に答える
0

以下のように、どのボタンがクリックされているかを確認することもできます

意見:

<div>          
<input type="file" name="file" id="file" style="height: 24px" />
<input type="submit" id="btnUpload" name="submitButton" value="Upload" />
</div>

 <div>
<input type="submit" id="btnCreate" name="submitButton" value="Create" />
</div

コントローラ

public ActionResult actionName(string btnUpload,string btnCreate)
{
  //now you can easily check here for which button is clicked

if(btnUpload != null || btnUpload !="")
{
 //perform uploading logic here
}
if(btnCreate!=null || btnCreate !="")
{
 //perform your validation here
} 
}

これがお役に立てば幸いです。

于 2012-09-12T10:28:59.547 に答える