如何使用jquery+;c#

如何使用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”})

我在上传docx文件时遇到问题。首先,当我单击“选择文件”时,提示将打开,但页面将重新加载到CheckInControl插件/CheckIn url(我认为您在Html.BeginForm中添加的是您单击提交时控制器和方法的位置)。第二件事是,我如何知道文档的内容正在发送到服务器,而不仅仅是名称或id


@使用(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
    }