0

私が昨日尋ねた質問に従って、私はより多くのテキスト ボックスを動的に作成し、それらをビューのモデルにマップする方法を見つけようとしていたので、サーバーに投稿すると、動的に (js) 生成されたすべてのテキスト ボックスを取得し、それを投稿します。リストなどのオブジェクトに。

この紛らわしい質問の例を挙げると:

「プライマリ連絡先」というラベルの付いたテキストボックスがあり、チケットの作成者は連絡先の名前と電話番号をこのボックスに入力できます。私が本質的にやりたいことは、これを 3 つのテキスト ボックスに切り替えることです。1 つのボックスではなく、名前、電子メール、および電話番号用に 1 つ。次に、別の連絡先をこの List コレクションに追加するために、さらに 3 つのボックスを動的に作成する JavaScript を作成します。次に、ユーザーがフォームを送信してチケットを変更または作成すると、モデル内のこのコレクションがコントローラーに渡されます。ただ、ペタポコだとちょっとややこしい。コントローラーをお見せしましょう:

[HttpPost]
public ActionResult ModifyTicket(Ticket model)
{
    string userString = User.Identity.Name.Replace("ONHOLD\\", "");
    if (ModelState.IsValid)
    {
         model.CreatedDate = DateTime.Now;
         model.LastUpdateBy = Util.GetEmployeeIdByName(userString);
         model.LastUpdate = DateTime.Now;
         model.IsComplete = false;
         model.ClientString = Util.GetClientNameById(model.ClientId);
         model.LocationString = Util.GetLocationNameById(model.LocationId);

         model.Update();

        SuccessMessage = "You have successfully updated ticket number: " + model.TicketId + " for the following client: " + model.ClientString + ".";
        return RedirectToAction("Index");
    }
        ErrorMessage = "Woops! Something went wrong, please check back in a few moments, if the problem persists please contact development.";
        return RedirectToAction("Index");
}

これに対する簡単な答えは、この正確な理由から、データベース モデルに List オブジェクトが含まれるということです。しかし、私は PetaPoco を使用していますが、それがどのように行われるのか完全にはわかりません。データベース モデルに手動でコレクションを追加することはできますが、データベース スキーマの変更に基づいてモデルを再生成すると、ファイルに加えた変更がすべて失われます。

ビューが DataAnnotations を使用した検証に使用する部分クラスも使用しています。ただし、このクラスは、クライアント側の検証を提供する DataAnnotations を含むだけのデータベース モデルと同じです。

私が達成しようとしていることを誰かが理解している場合は、欠落している部分を明確にするために、より多くの情報を提供できれば幸いです. この問題を解決する確実な方法が見つからないため、これに対する解決策が必要です!

4

1 に答える 1

1

あなたが何を意味するのか完全にはわかりませんが、すでにご存知かもしれませんが、MVC を使用してリストから/へのバインドをモデル化するのは簡単です。このような深いオブジェクトを保存する場合は、Ticket.List の [Ignore] 属性を使用して永続化せず、個別に処理します。連絡先を Ticket オブジェクトとは別に読み込んでから手動で Ticket オブジェクトに追加するか、結合クエリを使用して 1 対多のアプローチですべてを一度に読み込んでみます。

ペタポコがオールインワンでアップデートするのを期待していると思いますか?これは起こらないでしょう。それを分割する必要があります。今までの書き込みからはなんとも言えません。連絡先の長いリストは (その音から) ないので、1 つずつ挿入または更新するだけです。

それは役立つかもしれませんし、そうでないかもしれません。

于 2012-10-11T08:06:03.333 に答える