2012-09-16 18 views
0

我有以下形式MVC - 輸入提交導致自動重定向

<form id="file_upload" action="/Upload/Save" method="POST" enctype="multipart/form-data"> 
<input type="text" id="txtProposalName" name="name" placeholder="Nome da Camiseta" /> 
<input type="text" id="txtProposalDesc" name="description" placeholder="Descrição da Camiseta"/> 
<div class="fileupload-buttonbar"> 
    <div class="progressbar fileupload-progressbar"></div> 
    <span class="fileinput-button"> 
     <a href="javascript:void(0)" class="upload-image">Upload images</a> 
     <input type="file" name="files[]" multiple /> 
    </span> 
</div> 
<input type="hidden" id="imgID" name="imgID"/> 
<input type="submit" id="postProposal"/> 

會調用這個動作:

[HttpPost] 
    public JsonResult Save(string name, string description, string imgID) 
    { 
     return Json("a"); 
    } 

(這是當前實現,它有沒有邏輯,因爲我還在測試一些東西)。

我的問題是:當我點擊我的提交按鈕時,操作被調用了正確的值,但是當它返回時,我的瀏覽器重定向到/ Upload/Save(這是操作URL)。 這是怎麼回事?有什麼辦法可以預防它嗎?

謝謝!

+0

當然會去。 'action =「/ Upload/Save」'這是造成它。刪除操作,並且如果您想通過ajax上傳,請使用您的JavaScript將文件發送到您的操作。 – DarthVader

回答

1

您可以對您的方法(例如AJAX)使用異步調用來防止頁面重新加載。

+1

標記爲答案,因爲這將是我的方法,謝謝! – JSBach

0

不需要防止它,只需重定向用戶在您的服務器代碼。

+0

但我想留在同一頁面上(與使用javascript做這個帖子時的行爲一樣).... – JSBach

+0

使用$ .ajax('post',f ...)函數,並阻止從jummping提交事件到其他URL。 – alsotang

1

,我可以看到你使用重新加載整個頁面有:

 
    action="/Upload/Save" 

而且你想在控制器後的數據爲JSON操作方法。你需要使用jQuery來提交所有表單,使用ajax文件上傳器可以找到大多數問題。

加: 也看看serialize()它會幫助你收集所有表單輸入值。

+0

「您需要使用jQuery提交所有表單,使用ajax文件上傳器才能找到大多數問題。」對不起,我無法理解你的意思。 – JSBach

+1

我添加鏈接的輸入,但爲ajax文件上傳看看這個鏈接:[我怎樣才能上傳文件與jQuery異步?](http://stackoverflow.com/questions/166221/how-can-i-upload-files-與jQuery異步)和[jQuery Ajax文件上傳](http://stackoverflow.com/questions/2320069/jquery-ajax-file-upload) – webdeveloper

1

您可以使用Ajax.BeginForm來防止重新加載頁面。

+0

我會在幾分鐘內嘗試這個,並讓你知道:) – JSBach

+0

在這個場景它不能上傳文件[使用AJAX BeginForm上傳文件](http://forums.asp.net/t/1450881.aspx/1) – webdeveloper

+0

是的,我忘了這一點。 – brainstream