我想知道如何做到这一点像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