Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 文件上载未按预期工作_Asp.net Mvc_Razor - Fatal编程技术网

Asp.net mvc 文件上载未按预期工作

Asp.net mvc 文件上载未按预期工作,asp.net-mvc,razor,Asp.net Mvc,Razor,我正在尝试从我的应用程序上载一个文件,但它没有按预期工作。我没有在action方法中获取任何文件 我的viewmodel如下所示 public class CallQueryViewModel { [Display(Name = "Attachment")] public HttpPostedFileBase UploadFile { get; set; } } 我的剃须刀形状如下 @{ var ajaxOptions = new Aja

我正在尝试从我的应用程序上载一个文件,但它没有按预期工作。我没有在action方法中获取任何文件

我的viewmodel如下所示

public class CallQueryViewModel
{
        [Display(Name = "Attachment")]        
        public HttpPostedFileBase UploadFile { get; set; }
}
我的剃须刀形状如下

@{
    var ajaxOptions = new AjaxOptions
    {
        HttpMethod = "POST",
        OnBegin = "onCallAddBegin",
        OnSuccess = "OnCallCreateSuccess",
        OnFailure = "OnCallCreateFailure"
    };
}

@using (Ajax.BeginForm("AddCall", "CallHandling", ajaxOptions, new { @id = "CallAddForm", enctype = "multipart/form-data" }))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)

    <div class="row">
       <div class="col-md-6">
        <div class="form-group">
            @Html.LabelFor(model => model.UploadFile, new { @class = "col-md-2" })
            @Html.TextBoxFor(model => model.UploadFile, new { @class = "col-md-10", type="file" })
        </div>
      </div>
    </div>

    <div id="Submit">
            <input type="submit" value="Save" class="btn btn-success" />
    </div>
}
使用上面的代码,当我尝试上载文件时,我没有收到任何文件到控制器操作方法中。上载文件始终为空


有人能告诉我我遗漏了什么吗?

你不能通过AJAX上传文件,已经讨论过很多次了。使用常规HTML表单、jQuery插件或只搜索类似问题。您可以序列化表单并通过ajax@Zabavsky谢谢我不知道你能用Ajax上传文件。我使用了jquery表单插件,它工作得非常好。
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult AddCall(CallQueryViewModel model)
    {
        if ((model.UploadFile != null) && (model.UploadFile.ContentLength > 0))
        {
            // Upload file.
        }
    }