2014-05-13 65 views
0

我有一個非常簡單的形式是這樣的...形式提交狀態成功/失敗

<form id="myform" enctype="multipart/form-data" action="/api/test/Post" method="post"> 
    <input name="file2" type="file" /> 
    <input type="text" name="text1" /> 

    <input type="submit" name="submit" value="click click" /> 
</form> 

這輪流調用一個RESTful服務,它看起來像....

public void Post() 
    { 
     var httpRequest = HttpContext.Current.Request; 
     string value1 = httpRequest .Form["text1"]; 
     //do stuff with the form data submitted 

     var files = new List<string>(); 

     foreach(string file in httpRequest .Files) 
     { 
      var postfeild = httpRequest .Files[file]; 
      //do stuff 
     }   
    } 

當提交按鈕被按下的形式,頁面刷新。我想告訴用戶他們的表單是否已成功提交,如果發生錯誤,或將其重定向到另一個頁面。

這可能實現嗎?我想過做一個ajax調用,然後發送字符串數據,但是,讓文件複雜化。

有什麼我可以通過C#或JavaScript做到的,以達到理想的效果嗎?

+0

只需發送一個viewbag屬性後的帖子。並根據該值顯示/隱藏您的成功div。 – qamar

回答

0

我更喜歡通過AJAX發佈POST,並使用包含狀態/消息的JSON對象進行響應。然而,如果你想保持它的經典,那麼你必須注入一些JavaScript,它會在加載時運行。

至於使用JavaScript的Web窗體:(它已經有一段時間,因爲我用它..)

P碼充其量:

<% if (someVariable == true){ Response.Write("alert('successful update of blah');"); } %> 
+0

我本來很喜歡使用AJAX,但它對於這些文件會產生問題。 HTML5文件api在IE8中可惜不存在(但是你可以詳細說明一下嗎?我將在表單加載時使用javascript檢查什麼? – prawn

+0

你不需要HTML5來做到這一點...我使用jQuery .. –

0

您可以後添加某種警報頁面由於表單提交而重新加載。您只需在提交表單之前設置某種標誌並在顯示消息後將其設置回來。它將需要成爲服務器端標誌,JS變量將被刪除。

您也可以使用jQuery切換到AJAX,您可以在不刷新頁面的情況下提交表單。

+0

我會,但jQuery AJAX不支持文件,也就是說我無法通過AJAX調用將文件發送到服務器。 – prawn

相關問題