如何使用MVC Razor中的request.form获取添加文件上传值的值?我无法访问“fileTypeInput”值。请看截图...
<span class="btn green fileinput-button">
<i class="icon-plus icon-white"></i>
<span>@Html.LocalizeGlobal("Add files...")</span>
@* <input type="file" id="fileContainer" name="files[]" multiple />*@
<input type="file" name="fileTypeInput" value="Upload" />
</span>
</div>
private void FileUpload(Course item)
{
var x = (System.Web.HttpPostedFileBase)Request.Files["uploadFile"];
switch (Request.Form["fileTypeInput"])
{
case "Upload":
. . . .
. . . . .
}
}
答案 0 :(得分:2)
fileTypeInput
将在Request.Files
内,而不在Request.Form
内。你好像把这些键翻了过来:
var x = (System.Web.HttpPostedFileBase)Request.Files["fileTypeInput"];
由于您的文件输入名称为fileTypeInput
,因此您应该使用该密钥从Request.Files
集合中检索上传的文件。现在你使用了Request.Files["uploadFile"]
,但不清楚这个uploadFile
的来源以及你的表单中是否有一个带有此名称的文件输入。
您还可以让控制器操作采用具有相同名称的参数:
public ActionResult SomeAction(HttpPostedFileBase fileTypeInput)
{
...
}
这将避免您需要进行投射,并使您的操作更容易进行单独的单元测试。