我有一個服務從我的控制器調用上傳圖像。這很好,但是當條件不符合時,它現在返回'null',這是沒有幫助或優雅的。當前的代碼:從模型傳回錯誤信息的最佳方法?
public async Task<string> UploadPropertyImageAsync(HttpPostedFileBase imageToUpload)
{
string imageFullPath = null;
if (imageToUpload == null || imageToUpload.ContentLength == 0 || imageToUpload.ContentLength >= 8388608)
{
return null;
}
WebImage img = new WebImage(imageToUpload.InputStream);
if (img.Width < 1000)
{
return null;
}
try
{
//Do Something
}
catch (Exception ex)
{
//Log something
}
return imageFullPath;
}
}
我試圖通過ViewBag和TempData的背,但也似乎是有效的代碼?我如何編寫錯誤消息字符串並將其傳回給視圖?
謝謝,加文
添加控制器的方法
[HttpPost]
public async Task<ActionResult> Upload([Bind(Include = "ID,Caption")] HttpPostedFileBase photo, PropertyImage image, int propertyId)
{
var imageUrl = await imageService.UploadPropertyImageAsync(photo);
var imageGuid = Guid.NewGuid();
image.Original_URL = imageUrl.ToString();
image.PropertyID = propertyId;
image.DateCreated = DateTime.Now;
image.ID = imageGuid;
image.Status = true;
db.PropertyImage.Add(image);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
但這代碼在控制器中不存在的,它是「從」控制器調用。所以返回BadRequest()是不可能的吧? – Gavin5511
你是什麼意思,它是從控制器調用?你的意思是這是一個輔助方法,並從控制器動作調用或什麼? –
我已經添加了控制器代碼到我原來的問題 – Gavin5511