Asp.net mvc 3 视图和控制器中的文件上载逻辑(MVC3)

Asp.net mvc 3 视图和控制器中的文件上载逻辑(MVC3),asp.net-mvc-3,file-upload,razor,controller,Asp.net Mvc 3,File Upload,Razor,Controller,我想在MVC中实现一个文件上传逻辑,我的视图(cshtml)将包含如下内容 <div id="dialog" title="Upload files"> <p><input type="file" id="fileUpload" name="fileUpload" /> </p> <p><input type="submit" value="Upload file" /><

我想在MVC中实现一个文件上传逻辑,我的视图(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>  
如何链接单击事件以触发此控制器?这只是我在网上得到的一个示例代码,如果不正确,请告诉我

谢谢,
Adarsh

您将通过提交表单触发此控制器操作,就像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>
}
@使用(Html.BeginForm(“FileUpload”,“”,FormMethod.Post,new{enctype=“multipart/formdata”}))
{ 

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

使用Request.Files似乎是一个更好的主意,请使用示例代码:)这只是一个文件集合,所以:
if(Request.Files.Count>0){foreach(HttpPostedFileBase file in Request.Files){//做你的文件工作}
谢谢,在这种情况下,我的控制器将不接受任何参数。在操作方法[AcceptVerbs(HttpVerbs.Post)]之前,我需要这一行吗?实际上,您的控制器不再需要任何参数。是的,在本例中需要该属性,当您使用HTTP Post访问在本例中发生的操作时需要该属性,因为formmethod等于Post并因此调用Post。
@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>
}