C# HttpPostedFileBase返回空MVC3

C# HttpPostedFileBase返回空MVC3,c#,asp.net-mvc,C#,Asp.net Mvc,我正在用MVC4开发一个C#项目。 我的问题是: 我试图将字节[]转换为HttpPostedFileBase,但它总是返回Null(即使字节[]包含数据)。下面是我的代码: public override bool IsValid(object value) { HttpPostedFileBase file = value as HttpPostedFileBase } 这段代码是我的IsValid函数的一部分,我在这里验证上传的图像是否有效(小于

我正在用MVC4开发一个C#项目。 我的问题是:

我试图将字节[]转换为HttpPostedFileBase,但它总是返回Null(即使字节[]包含数据)。下面是我的代码:

public override bool IsValid(object value)        {               
HttpPostedFileBase file = value as HttpPostedFileBase
}
这段代码是我的IsValid函数的一部分,我在这里验证上传的图像是否有效(小于1MB,只有“jpg”或“png”等)。 提前谢谢

<form enctype="multipart/form-data" method="post">
<div> bla bla
</div>
</form>
?
请发布您的控制器代码,否则请尝试上面的方法


请发布您的控制器代码,否则请使用Html helper类尝试上面的方法,您可以编写如下代码

@using (Html.BeginForm("Create", "Company", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="file" name="LogoFileUp" id="LogoFileUp"></span>
}

使用HTMLHelper类,您可以按如下方式编写它

@using (Html.BeginForm("Create", "Company", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="file" name="LogoFileUp" id="LogoFileUp"></span>
}

除了Elvin的答案之外,您还可以使用一个模型,在该模型中,您可以添加包含您希望允许的扩展的DataStations:

模型:CompanyModel.cs

public class CompanyModel
{
    [Display(Name = "Logo")]
    [File(AllowedFileExtensions = new string[] { ".jpg", ".gif", ".tiff", ".png" }, MaxContentLength = 1024 * 1024 * 30, ErrorMessage = "Invalid File")]
    public HttpPostedFileBase LogoFileUp{ get; set; }

    //you can add other properties if you like, for example companyname
}
景色

@model CompanyModel
@using (Html.BeginForm("Create", "Company", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    @Html.ValidationMessageFor(model => model.LogoFileUp)
    @Html.LabelFor(model => model.LogoFileUp)
    @Html.TextBoxFor(model => model.LogoFileUp, new { type = "file" })
}
行动

[HttpPost]
public ActionResult Create(CompanyModel company)
{

    if (ModelState.IsValid)
    {
        //save company ...
    }else{
        return View(company)
    }
}

除了Elvin的答案之外,您还可以使用一个模型,在该模型中,您可以添加包含您希望允许的扩展的DataStations:

模型:CompanyModel.cs

public class CompanyModel
{
    [Display(Name = "Logo")]
    [File(AllowedFileExtensions = new string[] { ".jpg", ".gif", ".tiff", ".png" }, MaxContentLength = 1024 * 1024 * 30, ErrorMessage = "Invalid File")]
    public HttpPostedFileBase LogoFileUp{ get; set; }

    //you can add other properties if you like, for example companyname
}
景色

@model CompanyModel
@using (Html.BeginForm("Create", "Company", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    @Html.ValidationMessageFor(model => model.LogoFileUp)
    @Html.LabelFor(model => model.LogoFileUp)
    @Html.TextBoxFor(model => model.LogoFileUp, new { type = "file" })
}
行动

[HttpPost]
public ActionResult Create(CompanyModel company)
{

    if (ModelState.IsValid)
    {
        //save company ...
    }else{
        return View(company)
    }
}

请在控制器中添加操作代码或添加有关问题的更多详细信息请在控制器中添加操作代码或添加有关问题的更多详细信息