视图和控制器中的文件上载逻辑(MVC3)

时间:2011-11-18 08:34:01

标签: asp.net-mvc-3 file-upload razor controller

我想在MVC中实现文件uplaod逻辑,我的视图(cshtml)将包含这样的内容。

<div id="dialog" title="Upload files">
               <p><input type="file" id="fileUpload" name="fileUpload" /> </p>
        <p><input type="submit" value="Upload file" /></p>
    <% } %>
</div>  

我的控制器将具有保存文件的逻辑。

  [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult FileUpload(HttpPostedFileBase uploadFile)
    {
        if (uploadFile.ContentLength > 0)
        {
            string filePath = Path.Combine(HttpContext.Server.MapPath("../Uploads"),
                                           Path.GetFileName(uploadFile.FileName));
            uploadFile.SaveAs(filePath);
        }
        return View();
    }

如何链接click事件以触发此控制器?这只是我在网上得到的一个示例代码,让我知道它是不是正确的。

谢谢, 阿达什讷

1 个答案:

答案 0 :(得分:0)

您将通过提交表单来触发此控制器操作,就像MVC范例一样。

在视图中,您应将此HTML放在以下格式中:

@using (Html.BeginForm("FileUpload", "<ControllerNameHere>", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
        <p><input type="file" id="fileUpload" name="fileUpload" /> </p>
        <p><input type="submit" value="Upload file" /></p>
}

这会触发你的控制器。 我不知道如何使用该文件作为参数工作。我通常在控制器中使用Request.Files属性。

相关问题