我试图使用这里提到的一个例子如何用multipart/form-data做一个ASP.NET MVC Ajax表单帖子?
但我一直收到"失败"错误消息框
Index.cshtml
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<h2>Files Upload</h2>
<script type="text/javascript">
$(function() {
$("#form0").submit(function(event) {
var dataString;
event.preventDefault();
var action = $("#form0").attr("action");
if ($("#form0").attr("enctype") == "multipart/form-data") {
//this only works in some browsers.
//purpose? to submit files over ajax. because screw iframes.
//also, we need to call .get(0) on the jQuery element to turn it into a regular DOM element so that FormData can use it.
dataString = new FormData($("#form0").get(0));
contentType = false;
processData = false;
} …Run Code Online (Sandbox Code Playgroud) 我目前正在编写JavaScript并且对回调感到困惑.我发现它不是那种内置函数...
我现在正在阅读O'Relly JavaScript第5版,它显示的示例代码如下所示:
getText = function(url, callback) // How can I use this callback?
{
var request = new XMLHttpRequest();
request.onreadystatechange = function()
{
if (request.readyState == 4 && request.status == 200)
{
callback(request.responseText); // Another callback here
}
}
request.open('GET', url);
request.send();
}
Run Code Online (Sandbox Code Playgroud)
基本上,我想我不明白一般的想法callback......有人可以写一个示例代码来利用callback上述优势吗?
我正在使用ajax javascript从客户端上传文件,我在块中和服务器中分割,当收到所有块时我加入它们.但问题是即使原始文件和上传的文件大小相同但两者都不同.我的意思是gif文件,当我查看它与视频files.client侧代码不同和相同
var xhr = new XMLHttpRequest();
var tempBlob = blob;
var blobOrFile = tempBlob.slice(fileDataStart, fileDataSent);
xhr.open('POST', '/Portfolio/UploadBinaryFiles', false);
xhr.setRequestHeader("Cache-Control", "no-cache");
xhr.setRequestHeader("X-File-Name", fileName);
xhr.setRequestHeader("X-File-Size", fileSize);
xhr.setRequestHeader("X-File-BytesSent", fileDataSent);
xhr.setRequestHeader("X-File-SplitCounter", fileSplitCounter);
xhr.setRequestHeader("Content-Type", "multipart/form-data");
xhr.send(blobOrFile);
Run Code Online (Sandbox Code Playgroud)
服务器端代码加入
FileStream fsSource = new FileStream(FileOutputPath, FileMode.Append);
// Loop through all the files with the *.part extension in the folder
foreach (FileInfo fiPart in diSource.GetFiles(@"*.part"))
{
// Create a byte array of the content of the current file
Byte[] bytePart = System.IO.File.ReadAllBytes(fiPart.FullName);
// Write the bytes to the …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 jquery Ajax 将文件与其他表单数据一起发布到 MVC 控制器。
jQuery Ajax 调用
function SaveStundent () {
var formData = new FormData();
var file = document.getElementById("studImg").files[0];
formData.append("studImg", file);
var studentDetails = {
Name: $('#txtName').val().trim()
};
formData.append("studentDetails", studentDetails);
$.ajax({
type: "POST",
url: "@(Url.Action("CreateStudent", "Student"))",
data: formData,
processData: false,
contentType: false,
success: function (response) {
}
});
}
Run Code Online (Sandbox Code Playgroud)
MVC控制器
[HttpPost]
public ActionResult CreateStudent(Student studentDetails)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
学生模特
public class Student
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
虽然我能够在请求中获取文件,但studentDetailsMVC 控制器中的参数始终为空。
考虑以下包含一些javascript利用prompt和的HTML片段unload.该prompt()方法工作正常但我想在重新加载或离开页面时提醒诸如Goodbye,用户之类的东西.任何帮助是极大的赞赏.
<body onload="promptName()" >
<script type="text/javascript">
function promptName()
{
var userName = prompt("What's your name ?", "")
return userName;
}
function goodBye()
{
alert("Goodbye, " + promptName() + "!");
}
window.onunload = goodBye();
</script>
</body>
Run Code Online (Sandbox Code Playgroud) 我正在使用mvc3,并试图创建一系列ajax表单,每个表单上传一个文件,在一个页面内.这是该页面的视图:
@{
ViewBag.Title = "Index";
}
<h2>
Index</h2>
@Html.Partial("_UploadItem")
@Html.Partial("_UploadItem")
@Html.Partial("_UploadItem")
<script type="text/javascript">
function Go() {
// loop through form tags
for (var n = 0; n < document.forms.length; n++) {
var f = document.forms[n];
// if a dress is chosen, a caption is chosen
// and a file is chosen, then submit the ajax form
if (f.dressid.value != '' &&
f.dresscaption.value != '' &&
f.fileitem.value != '')
f.submit();
}
}
</script>
<input type="button" onclick="Go();"/>
Run Code Online (Sandbox Code Playgroud)
然后Go()函数循环遍历ajax表单,检查每个表单上的所有3个部分(dressid,dresscaption和fileitem)是否为非空,并且调用提交表单,启动异步上载.
这是局部视图:
@using SoRefeising.Models
@using …Run Code Online (Sandbox Code Playgroud) 之后如何获得Doctor Experience标签面板submit uploading image
Cs.Html:
@using (Html.BeginForm("AddDoctorImage", "Doctor", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<section>
<div class="row">
<div class="col-lg-4">
<fieldset class="form-group">
<label class="form-label semibold">Upload Doctor Image</label>
@*<input type="file" name="postedFile" id="txtUploadImage" class="btn btn-rounded btn-file" style="cursor:pointer;" />*@
<span class="btn btn-rounded btn-file">
<span>Choose file</span>
<input type="file" name="postedFile" id="postedFile">
</span>
</fieldset>
</div>
<div class="col-lg-4">
<fieldset class="form-group">
<label class="form-label semibold">Perview Image</label>
<img id="image_upload_preview" src="http://placehold.it/100x100" alt="your image" />
<a id="remove" onclick="javascript:ClearFileUploadControl();" style="display: none; cursor: pointer;">Remove</a>
</fieldset>
</div>
<div class="col-lg-4">
<input type="submit" …Run Code Online (Sandbox Code Playgroud) asp.net-mvc ×5
ajax ×4
c# ×3
javascript ×3
jquery ×2
asynchronous ×1
callback ×1
html ×1
html5 ×1
onload ×1
onunload ×1
uploading ×1