C# 在C中检索附加到formData的数据
在这种情况下:C# 在C中检索附加到formData的数据,c#,jquery,C#,Jquery,在这种情况下: var xhr = new XMLHttpRequest(); var fd = new FormData(); fd.append("file", document.getElementById('fileUpload').files[0]); fd.append("PhoneId", '1234'); xhr.open("POST", '/Main/Upload', true); xhr.send(fd); xhr.addEventListener('load', funct
var xhr = new XMLHttpRequest();
var fd = new FormData();
fd.append("file", document.getElementById('fileUpload').files[0]);
fd.append("PhoneId", '1234');
xhr.open("POST", '/Main/Upload', true);
xhr.send(fd);
xhr.addEventListener('load', function (event) {
var test = event.target.response;
})
我上传了一个文件,并附上了一个整数。我的控制器是:
public ActionResult Upload(Model newModel)
{
NewFiles files = new NewFiles ();
try
{
HttpPostedFileBase file = Request.Files[0];
}
catch(Exception)
{}
}
public class newModel
{
public int FileID { get; set; }
public string ReturnAction { get; set; }
public HttpPostedFileBase fileUpload { get; set; }
public int PhoneId { get; set; }
}
上传的文件会被识别,但在C中我需要什么来查看上传的PhoneId?您的语法在控制器中有点不正确,无法编译。将控制器更改为以下语法应该可以工作。这显示了如何访问发布的文件和模型属性
[HttpPost]
public ActionResult Upload(newModel model, HttpPostedFileBase file)
{
// Check the file is valid.
if (file == null || file.ContentLength == 0 || string.IsNullOrEmpty(file.FileName))
ModelState.AddModelError("fileUpload", "Invalid file uploaded.");
// Access model properties as you wish, like this:
int phoneID = model.PhoneId;
return null;
}
要改进您的代码,还需要做一些额外的事情:
一般来说,在定义类时,类的名称应采用大写字母的格式。
如果在AJAX请求中使用jQuery,而不是使用普通的JavaScript方式,那么会容易得多。通过使用普通的JavaScript方式,您必须手动将表单属性分配给FormData对象,而使用jQuery您可以简单地执行$formID.serialize。
使用Request.PhoneId或Request.PhoneId[0]它说HttpRequestBase不包含PhoneId的定义,该定义不应该在newModel中传递吗?它应该在ViewModel中,可以打印newModel并显示其中的内容吗?我不是一个c开发人员。但这有助于其他人发现问题