我正在使用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");
}
当我运行它时,“上传文件并按提交”我得到模型为空,模型包含有关名称,您来自哪个国家等的配置文件的信息。
我不知何故需要为我的模型添加值,以便我可以返回它(因此它不会崩溃)。有什么想法吗?
答案 0 :(得分:2)
要使模型具有值,其属性需要存在于form
中。您需要至少为要在POST
上发回的每个媒体资源添加隐藏字段。
答案 1 :(得分:2)
第一个问题是,从代码中看,你似乎没有在RedirectToAction方法中返回模型,当然取决于你是否想要这样做。
但是如果模型为null,则表示项目未被回发到控制器操作。