0

[保存]ボタンのクリックイベントがあるコントローラーが1つあります。追加と編集の目的で同じコントローラーとビューを使用しています。私のコードは以下の通りです

[HttpPost]
            [Button(ButtonName = "Save")]
            [ActionName("Create")]
            [ValidateAntiForgeryToken(Salt = "PostData")]
            public ActionResult Save(Ntegra m_Ntegra,FormCollection form)
            {}

ここでActionName( "Create")を使用しているので、ActionName( "Edit")に対してボタンは機能しません。誰かが私の要件を達成する方法を教えてもらえますか?手伝ってくれてありがとう...... :)

4

3 に答える 3

0

との2つのコントローラーアクションは実際には必要ありません。属性で装飾せずに1つのアクションを実行できcreateます。editActionName

シングルコントローラーアクションidでは、保存されるエンティティのを確認する必要があります。値がある場合は、編集するか、作成します。

[HttpPost]
public ActionResult Save(Ntegra m_Ntegra)
{
  if(m_Ntegra.Id == 0)
  {
    // create
  }
  else
  {
    // edit
  }
}
于 2012-06-20T09:14:27.933 に答える
0

Saveという名前のアクションメソッドを作成して、モデルを渡すことができます。アクションメソッドでは、IDがモデルに存在するかどうかを確認できます。事前定義されたIDがある場合は、レコードを更新できます。それ以外の場合は、新しいレコードを作成できます。フォームコレクションの場合、フォームをレンダリングするときに、非表示フィールドを使用してIdフィールドを格納します。

public ActionResult Save(FormCollection form)
            {}
于 2012-06-20T08:03:29.667 に答える
0

つまり、1 つのビューを使用できますEdit or Createが、2 つの異なるコントローラー アクション (作成、編集) を記述する必要があります。

MVC Music store CodePlex projectどの規則が使用されているか、標準の MVC コードを記述する方法については、こちらを参照してください。

于 2012-06-20T07:55:22.593 に答える