首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpPostedFile返回空值吗?

HttpPostedFile返回空值吗?
EN

Stack Overflow用户
提问于 2020-01-13 00:46:45
回答 1查看 210关注 0票数 2

我有一个表单向Action发送POST数据,模型有HttpPostedFile字段,但是当我将表单数据发送到Action时,我只得到空值HttpPostedFile字段。

这是我的模型:

代码语言:javascript
复制
public class MemberModel
{
    [DisplayName("Member Name")]
    public string Name { get; set; }
    [DisplayName("Telephone / Mobile Number")]
    public string PhoneNumber { get; set; }
    [DisplayName("Upload File")]
    public string ImagePath { get; set; }
    public HttpPostedFile ImageFile { get; set; }
}

这是我的行动:

代码语言:javascript
复制
public ActionResult ContactForm(MemberModel membervalues)
    {
        //Use Namespace called :  System.IO
        string FileName = Path.GetFileNameWithoutExtension(membervalues.ImageFile.FileName);

        //To Get File Extension
        string FileExtension = Path.GetExtension(membervalues.ImageFile.FileName);

        //Add Current Date To Attached File Name
        FileName = DateTime.Now.ToString("yyyyMMdd") + "-" + FileName.Trim() + FileExtension;

        //Get Upload path from Web.Config file AppSettings.
        string UploadPath = ConfigurationManager.AppSettings["UserImagePath"].ToString();

        //Its Create complete path to store in server.
        membervalues.ImagePath = UploadPath + FileName;

        //To copy and save file into server.
        membervalues.ImageFile.SaveAs(membervalues.ImagePath);

        //To save Club Member Contact Form Detail to database table.


        var db = new ClubMemberDataClassesDataContext();

        tblMember _member = new tblMember();

        _member.ImagePath = membervalues.ImagePath;
        _member.MemberName = membervalues.Name;
        _member.PhoneNumber = membervalues.PhoneNumber;

        db.tblMembers.InsertOnSubmit(_member);
        db.SubmitChanges();
        return View();
    }

这是我的表单视图:

代码语言:javascript
复制
<div class="form-group">
    @Html.LabelFor(model => model.ImagePath, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        <input type="file" name="ImageFile" required />
    </div>
</div>

当我尝试上传图像文件时,和这个结果:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-13 03:09:13

您应该使用HttpPostedFileBase而不是HttpPostedFile

备注

HttpPostedFileBase类是一个抽象类,它包含与HttpPostedFile类相同的成员。HttpPostedFileBase类允许您创建类似于HttpPostedFile类的派生类,但是可以自定义并在ASP.NET管道之外工作的

此外,HttpPostedFile是密封类,因此不能立即创建和绑定

代码语言:javascript
复制
public sealed class HttpPostedFile

HttpPostedFileBase是抽象类。

代码语言:javascript
复制
public abstract class HttpPostedFileBase
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59709422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档