如何使用jquery+;c#
我在上传docx文件时遇到问题。首先,当我单击“选择文件”时,提示将打开,但页面将重新加载到CheckInControl插件/CheckIn url(我认为您在Html.BeginForm中添加的是您单击提交时控制器和方法的位置)。第二件事是,我如何知道文档的内容正在发送到服务器,而不仅仅是名称或id如何使用jquery+;c#,c#,jquery,forms,C#,Jquery,Forms,我在上传docx文件时遇到问题。首先,当我单击“选择文件”时,提示将打开,但页面将重新加载到CheckInControl插件/CheckIn url(我认为您在Html.BeginForm中添加的是您单击提交时控制器和方法的位置)。第二件事是,我如何知道文档的内容正在发送到服务器,而不仅仅是名称或id @使用(Html.BeginForm(“CheckIn”、“checkInControl、FormMethod.Post、new{enctype=“multipart/form data”})
@使用(Html.BeginForm(“CheckIn”、“checkInControl、FormMethod.Post、new{enctype=“multipart/form data”}))
{
选择文件
}
功能测试(){
$.ajax({
cache:false,
类型:“POST”,
url:“/SummaryStatementProcessing/CheckInSummaryStatement”,
数据:数据
});
}
公共操作结果签入(HttpPostedFileBase fileResume){
//在这里工作
}
我不需要页面去任何地方(因为这实际上是在一个对话框中,所以它可以在提交时关闭,但目前它正在以上面的url重新加载页面)。目前,我甚至无法访问控制器检查…要执行所需操作,最简单的方法是在请求中发送
FormData
对象。但是,理想情况下,您应该挂接到表单
的提交
事件,而不是点击提交按钮的来停止页面重定向
您需要在请求中将processData
和contentType
属性设置为false
。此外,操作名称似乎与您的URL不匹配。您可以使用@Url.Action
来修复此问题。该操作还需要[HttpPost]
属性,因为这是您在AJAX请求中使用的HTTP动词
说了这么多,试试这个:
@使用(Html.BeginForm(“CheckIn”、“checkInControl、FormMethod.Post、new{enctype=“multipart/form data”}))
{
选择文件
}
$('.session filter form')。提交(函数(e){
e、 预防默认值();
$.ajax({
cache:false,
类型:“POST”,
url:'@url.Action(“签入”、“SummaryStatementProcessing”),
数据:新表单数据(本),
processData:false,
contentType:false,
});
}
[HttpPost]
公共操作结果签入(HttpPostedFileBase fileResume)
{
//在这里工作
}
有了上面的代码,您就可以在操作中使用HttpPostedFileBase
类了。控制器的名称中有一个错误,对吗?您在AJAX调用中调用了CheckInSummaryStatement,控制器被称为CheckIn。我一直在关注您的编辑,我想我在这方面做了很多工作f更正我的帖子!:)@ProgrammerV5 lol,每次我编辑的时候,我都发现了一些需要修改的地方:)我知道,有时候我也有同样的感觉:)。我还要补充一点,控制器需要[HttpPost]作为装饰(以防万一),否则您的回答现在似乎完整了。谢谢-我错过了那一个我确实有装饰,只是没有添加,但是谢谢,我会看看这个,看看我得到了什么
<div class="session-filter">
@using (Html.BeginForm("CheckIn", "CheckInController", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div class="select-filter-title"><strong>Select File</strong></div>
<table>
<tr>
<td><input name="fileResume" id="hiddenFileResume" type="file" value="" /><input type="submit" onclick="tested()"/></td>
</tr>
</table>
}
</div>
function tested(){
$.ajax({
cache: false,
type: "POST",
url: "/SummaryStatementProcessing/CheckInSummaryStatement",
data: data
});
}
public ActionResult CheckIn(HttpPostedFileBase fileResume){
//work in here
}