3つの情報を投稿するフォームがあります。
- レシピモデル
- タグ フィールド (文字列)
- ファイル(タイプファイルの入力)
コントローラー側では、次のような情報を受け取ります。
[HttpPost]
[Authorize]
public ActionResult Create(Recipe recipe, string taglist, HttpPostedFileBase file)
{
if (ModelState.IsValid)
{ ...
コントローラーでは、アップロードされたファイルとタグリストに関するいくつかの情報を検証します。何か問題があれば、このように Create ビューに戻ります
ModelState.AddModelError("", "You must provide at least one tag");
return View(recipe);
問題は、ユーザーが提供した情報 (アップロードするファイルまたはタグ) がその過程で失われることです。レシピのすべてのフィールドは、ビューに渡してからまだ残っています。情報を失いたくない。
これをどのように処理すればよいですか?最善の方法は何ですか?タグ文字列を追加してレシピモデルをラップする特別なモデルを作成することを考えましたが、文字列ではないため、ファイルの大文字と小文字をどのように処理できるかわかりません。
どんな助けでも大歓迎です
追加情報:タグはデータベース内の文字列ではなく、レシピに添付されたタグのリストであるため、タグ文字列はレシピ モデルにありません。文字列を必要とする jQuery プラグインを使用しているので、この方法で実行し、コントローラーでタグ文字列を分割してデータベースに追加します。