我想知道如何做到這一點像jQuery ajax。現在我有一個jQuery UI對話框彈出窗口,它有一個html輸入文件。如何通過jQuery上傳文件?
現在,當用戶點擊導入我想用jQuery做一個ajax post到服務器。
我不知道如何將文件傳遞給我的操作視圖。
現在我把它做了充分的回傳,所以我有這個
<% using (Html.BeginForm("Import", "Controller", FormMethod.Post, new { enctype = "multipart/form-data" }))
{%>
<br />
<p><input type="file" id="file" name="file" size="23 accept="text/calendar"></p><br />
<p><input type="submit" value="Upload file" /></p>
<% } %>
然後在我的控制器
public ActionResult Import(HttpPostedFileBase file)
所以我不知道如何在HttpPostedFileBase通過使用jQuery和如何在jQuery中設置enctype = "multipart/form-data"
。
編輯
玉以及jQuery的形式插件似乎是要走的路。
$('#frm_ImportCalendar').livequery(function()
{
var options = {
dataType: 'json',
success: function(response)
{
alert(response);
}
};
$(this).ajaxForm(options);
});
我想知道爲什麼我的JSON不工作,但有人提到你不能像現在這樣使用它。我正在檢查某人能夠使用json的其他鏈接。
我不確定爲什麼在Lck中使用.submit之前的ajax提交方法。
編輯
我怎麼能更改文件上傳JSON結果返回我的字典陣?
Dictionary<string, string> result = new Dictionary<string, string>();
result.Add("Msg", "Success!!");
result.Add("Body", calendarBody);
// how can I change this?
return new FileUploadJsonResult { Data = new { message = string.Format("{0} uploaded successfully.", System.IO.Path.GetFileName(file.FileName)) } };
我只是到這裏來問,爲什麼它不會返回JSON笑。我做了類似的事情,但Id id沒有指定.submit。到目前爲止,請參閱編輯。 – chobo2 2010-01-07 23:31:19
由於安全原因(它記錄在jQuery Form網頁上),JavaScript無法接受JSON作爲上傳文件的請求的數據格式。我建議你使用XML,這是_almost_就像使用jQuery的JSON一樣簡單......或者用換行符分隔純文本中的值。 我明確使用了.ajaxSubmit,因爲我從我自己的項目的一些代碼中拿了一些代碼,在那裏我使用了一些更多的東西。無論如何,這應該與您的代碼實際上相同。 – LorenzCK 2010-01-08 00:01:45
那麼這個XML是怎麼樣的。我發佈了我轉換爲Json結果的字典集合,我怎樣才能將它轉換爲XML。 – chobo2 2010-01-08 00:11:40