返回模型但它是null

时间:2013-11-12 14:11:58

标签: c# asp.net-mvc-4 model imageresizer

我正在使用Imageresizer并上传照片。我想获取收到的URL并将其返回到我的View。我有我想要的URL,但我不能再回复了......这是我目前的代码:

public ActionResult UploadPhoto(Image img, HttpPostedFileBase file, ProfilePageModel model)
{
    var currentUser = CommunitySystem.CurrentContext.DefaultSecurity.CurrentUser;
    bool isAccepted = false;

    string fileName = string.Empty;
    if (file.ContentLength > 0)
    {
        string fName = System.Guid.NewGuid().ToString();
        // Generate each version
        foreach (string fileKey in System.Web.HttpContext.Current.Request.Files.Keys)
        {
            HttpPostedFile uploadFile = System.Web.HttpContext.Current.Request.Files[fileKey];
            // Generate a filename (GUIDs are best).
            fileName = Path.Combine("~/uploads/", fName + format);

            // Let the image builder add the correct extension based on the output file type
            ImageBuilder.Current.Build(uploadFile, fileName, new ResizeSettings(
                "width=300;format=jpg;mode=max;crop=20,20,80,80;cropxunits=100;cropyunits=100"));
            model.fileName = fileName;        
        }
        return RedirectToAction("EditProfile");
    }
    return RedirectToAction("EditProfile");
}

当我运行它时,“上传文件并按提交”我得到模型为空,模型包含有关名称,您来自哪个国家等的配置文件的信息。

我不知何故需要为我的模型添加值,以便我可以返回它(因此它不会崩溃)。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

要使模型具有值,其属性需要存在于form中。您需要至少为要在POST上发回的每个媒体资源添加隐藏字段。

答案 1 :(得分:2)

第一个问题是,从代码中看,你似乎没有在RedirectToAction方法中返回模型,当然取决于你是否想要这样做。

但是如果模型为null,则表示项目未被回发到控制器操作。