0

何度も頼まれても殴らないで。
MVC を使用してエンティティを編集する方法についての素晴らしいプレゼンテーションをたくさん見てきました。私の編集フォームにはもちろん編集可能な3つのフィールドのみが含まれているため、ユーザーが最終的に正しい値を入力するまでクライアントとサーバー間でデータをローテーションできることを望んでいます。しかし、私のアプリはもう少し複雑なので、アドバイスが必要です。
1) Name フィールドと CreatedBy フィールドを持つエンティティ Product があります
2) 編集可能なフィールドは Name のみです
3) 入力が正しくない場合は、編集不可能なフィールドに最適な方法で再入力する必要があります

これを行うには、レポからビジネス オブジェクトを取得し、結果のビューモデルに欠損値を割り当てる必要があります。多くの値が存在する可能性があります。それらを段階的に割り当てる必要がありますか? (Try)UpdateModel を使用する必要がありますか? AutoMapper (試したことがない) のようなものを使用して、エンティティを相互に更新する方法を指定する必要がありますか? これにはどのような一般的な方法が使用されますか? 編集可能なフィールドが 3 つ以上ある編集フォームについては、リンクをお願いします... ありがとうございます!

4

1 に答える 1

0

あなたのコメントに基づいて、「それらは非表示に保存されていませんが、モデルが有効でない場合は、編集可能な値と編集できない値の両方を含むビューをユーザーに返す必要があります。コントローラーと同様に、編集可能な値のみを取得する必要があります。私の手で他の人を設定します。」その方法は次のとおりです。

<HttpPost()>
Function Create(company As Company) As ActionResult

    If ModelState.IsValid Then

        db.Companies.Add(company)
        db.SaveChanges()
        Return RedirectToAction("Index")

    End If

    ' if model state is not valid
        Return RedirectToAction("MyNewAction")

End Function

モデル状態が無効な場合は、別のアクション (または選択した場合はビュー) に送信します。別のモデルを作成する必要がある場合は、それを行ってから、フィールドを追加してモデルを新しいビューに送信できます。

于 2012-09-07T15:30:11.417 に答える