【发布时间】:2014-04-11 13:26:52
【问题描述】:
现在,我想删除一个页面上的多个表单。所以目前我正在这样做。
JAVASCRIPT
$("button[id$='uploadfile']").click(function (evt) {
//////////////////////////////////////////////////////
// This code block works
alert("upload file");
var file1 = $('#csvIdentifierFileBase').val();
var formData = new FormData();
var opmlFile = $('#csvIdentifierFileBase')[0];
formData.append("opmlFile", opmlFile.files[0]);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'alt/Import');
xhr.send(formData);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
alert(xhr.responseText);
}
};
//////////////////////////////////////////////////////
//////////////////////////////////////////////////////
// This code block does not
$.ajax({
type: 'POST',
url: 'alt/Import',
data: formData,
enctype: 'multipart/form-data',
//cache: false,
//contentType: false,
//processData: false,
success: function (result) {
alert(result.success);
},
error: function (a, b, c) {
alert("An error has occurred.");
}
});
HTML
<div class="col-md-12">
<input type="file" name="csvIdentifierFileBase" id="csvIdentifierFileBase"/>
<button id="uploadfile" name="action" value="Import" >Import</button>
</div>
控制器
[System.Web.Http.HttpPost]
public ActionResult Import()//HttpPostedFileBase csvIdentifierFileBase)
{
HttpResponseMessage result = null;
HttpPostedFileBase file = Request.Files[0]; //Uploaded file
}
除了对这个控制器方法的 javscript 调用之外没有改变任何东西,并且使用 XmlHttpRequest 它工作正常,有没有办法切换到 jquery/ajax 样式调用,所以我不依赖 XmlHttpRequest 对象并且仍然拥有它调用控制器?我正在寻找本机解决方案,而不是另一种类型的插件......这可能吗? 也无法将输入和按钮包装在 AJAX.BeginForm 标记中,因为我试图消除一页上的表单数量。
【问题讨论】:
-
我不能使用 Ajax.beginform,因为我最终会在一个表单中使用一个表单并且这不起作用。这就是为什么我在没有表单标签的情况下执行上述操作。我需要能够在没有表单标签的情况下做你在那个帖子上所做的 Ashwini。
标签: jquery ajax asp.net-mvc asp.net-mvc-4 asp.net-ajax