C# 返回模型,但它';s空

C# 返回模型,但它';s空,c#,asp.net-mvc-4,model,imageresizer,C#,Asp.net Mvc 4,Model,Imageresizer,我正在使用Imageresizer并上传照片。我想获取我收到的URL并将其返回到我的视图中。我有我想要的URL,但是我不能再返回了。。。这是我目前的代码: public ActionResult UploadPhoto(Image img, HttpPostedFileBase file, ProfilePageModel model) { var currentUser = CommunitySystem.CurrentContext.DefaultSecurity.CurrentUs

我正在使用Imageresizer并上传照片。我想获取我收到的URL并将其返回到我的视图中。我有我想要的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");
}
当我运行这个“上传文件并按Submit”时,我得到模型为空,模型包含有关配置文件的信息,如名称、您来自哪个国家等


我需要在我的模型中添加一些值,这样我就可以返回它(这样它就不会崩溃)。有什么想法吗?

要使模型具有值,其属性必须以
形式存在。您需要至少为希望在
POST

上发回的每个属性添加隐藏字段。要使模型具有值,其属性需要存在于
表单中。您需要至少为希望在
POST

上发回的每个属性添加隐藏字段。第一个问题是,从代码中看,您似乎没有在RedirectToAction方法中返回模型,当然这取决于您是否要这样做


但是,如果模型为null,则表示这些项没有被发回控制器操作

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



但是,如果模型为null,则表示这些项没有被发回控制器操作

您没有显示相关代码。您将被重定向到
/EditProfile/
,该操作方法假定返回
View()
,而不带模型。如果不是这样,您的意思是在
model.fileName=fileName处得到
NullReferenceException
?好的,我明白了!问题是我从model.fileName中获取了值,但正如您所看到的,我分配了profilepagemodel,并且该模型中的值为空,除了文件名。。所以它崩溃了。。我使用redirecttoaction(“editprofile”,model)异常发生在哪里?它实际上是什么样子?当我尝试重定向到editprofile时,以及当我添加以返回模型时,会发生异常。它说:值不能为空。并且不是model.filename为空!这是我的profilepagemodel中存在的其他内容。您没有显示相关代码。您将被重定向到
/EditProfile/
,该操作方法假定返回
View()
,而不带模型。如果不是这样,您的意思是在
model.fileName=fileName处得到
NullReferenceException
?好的,我明白了!问题是我从model.fileName中获取了值,但正如您所看到的,我分配了profilepagemodel,并且该模型中的值为空,除了文件名。。所以它崩溃了。。我使用redirecttoaction(“editprofile”,model)异常发生在哪里?它实际上是什么样子?当我尝试重定向到editprofile时,以及当我添加以返回模型时,会发生异常。它说:值不能为空。并且不是model.filename为空!我知道我不返回任何模型信息,但我想返回什么,我不能只返回模型。文件名,它有我想要的值。。但是如果我返回它,模型中的所有其他内容都将为空。如果你知道我的意思,我需要为xD模型获取这个方法的值@艾哈迈德·伊利亚斯不知道你的意思。。。如果您返回它,模型中的所有其他内容都将为空?不如果模型有值,那么它将在模型中返回这些值。除非您将其设置为null,否则任何内容都不会为null,或者正在发布的模型不会在管道中创建以提供给控制器。嗯,我知道我不返回任何模型信息,但我想返回什么,我不能只返回模型。文件名,它具有我想要的值。。但是如果我返回它,模型中的所有其他内容都将为空。如果你知道我的意思,我需要为xD模型获取这个方法的值@艾哈迈德·伊利亚斯不知道你的意思。。。如果您返回它,模型中的所有其他内容都将为空?不如果模型有值,那么它将在模型中返回这些值。除非您将其设置为null,否则任何内容都不会为null,或者在将提供给控制器的管道中未创建要发布的模型。问题是,它们确实存在,但在另一个名为“保存配置文件”的方法中:s@user2862542,它们必须存在于你发布的
表单中。你是说我的方法吗?它必须存在于我名为uploadPhoto?@user2862542的方法中,如果模型以
null
的形式进入此方法,这是因为
POST
表单中没有字段。问题是,它们确实存在,但在另一个名为“save profile”的方法中:s@user2862542,它们必须存在于你发布的
表单中。你是说我的方法吗?它必须存在于我名为uploadPhoto?@user2862542的方法中,如果模型以
null
的形式进入此方法,那是因为
POST
表单中没有字段。