イメージをアップロードするために私のコントローラから呼び出されるサービスがあります。これはうまくいきますが、基準が満たされていない場合、現在は「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