我正在ASP.NET MVC应用程序中上传文件。在.ascx文件中,我具有以下内容:
<form action="/Admin/Mail/ABC" enctype="multipart/form-data" method="post">
<div>
<input type="file" name="file" id="file" />
<input type="submit" value="Upload" id="UploadList" onclick="Origin.UploadOptOutList();"/>
</div>
在.js文件中:
Origin.UploadList = function () {
Origin.ajax({
url: '/Admin/Mail/Upload',
type: 'POST',
dataType: 'json',
success: function (data) {
alert('success!');
}
});
}
和控制器:
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
List<string> validIDs, invalidIDs;
if (file.ContentLength > 0)
{
// do something
}
}
从.js调用Action时,“文件”始终为NULL。知道我缺少什么吗?
参考方案
首先,除非使用HTML5,否则您不能异步上传文件。如果仍然需要此功能,则可能要尝试jQuery Form plugin。
第二,在当前的js中,您没有随请求发送任何数据(data
方法选项中的字段ajax
),这就是为什么您在服务器端未收到任何内容的原因。而且,不可能像我之前提到的那样在此请求中插入文件。在这里,最简单的解决方案是放弃AJAX,然后以通常的方式上传文件:
视图:
<form action="/Admin/Mail/Upload" enctype="multipart/form-data" method="post">
<div>
<input type="file" name="file" id="file" />
<input type="submit" value="Upload" id="UploadList" />
</div>
</form>
这里没有js,服务器代码是相同的。
ddl在服务器中未更新-asp.net - javascript我在ASP.NET c#上工作。我有一个DropDownList。 (runat =“ server”)在$ {document).ready上,我更新了它的值:$(document).ready(function () { document.getElementById("ddl").value = "abc"; ……
ASP.NET-如何更改JSON序列化的方式? - javascript我正在使用ASP.NET通过以下查询返回Json文件:public ActionResult getTransactionTotals(int itemID) { DBEntities db = new DBEntities(); var query = from trans in db.Transactions // Linq query removed …
ASP.NET MVC中应为DataTable返回哪种数据? - javascript我想为DataTable中的每个页面创建动态加载信息。我正在尝试遵循以下示例:https://www.datatables.net/manual/server-sidehttps://www.datatables.net/manual/data来自示例的代码:$('#example').DataTable( { serverSide: t…
Asp.Net:在服务器端还原DropDownList的客户端SelectedItem - c#因此,我的页面上有一个dropDownList,其中包含数百个项目。用户可以通过在文本框中键入一些文本来过滤此DDL。然后对DDL进行相应的过滤(所有不包含输入文本的项目都将通过JavaScript删除)。然后,用户选择他的项目并按下按钮。通常,这将导致错误,因为DDL已更改并且ASP验证了PostBack数据。但是,使用EnableEventValidat…
asp.net mvc中的对象数组数据始终为null - javascript我需要通过json将对象数组发送到asp.net mvc 2,但是我在mvc控制器中没有得到null对象是这样的entries[1].date = "12/22/2014" entries[1].Ref = "0002" entries[1].Credit = "100" entries[2].da…